From 02b07d2874b8a9767f732003ec776192efdf53a1 Mon Sep 17 00:00:00 2001 From: Ivan <8611739+IRBorisov@users.noreply.github.com> Date: Thu, 19 Sep 2024 17:48:48 +0300 Subject: [PATCH] R: React.PropsWithChildren --- rsconcept/frontend/src/app/GlobalProviders.tsx | 2 +- rsconcept/frontend/src/components/Icons.tsx | 3 +-- rsconcept/frontend/src/components/ui/Dropdown.tsx | 12 ++++++++---- rsconcept/frontend/src/components/ui/Modal.tsx | 4 +--- rsconcept/frontend/src/components/ui/Overlay.tsx | 9 +++++++-- .../frontend/src/components/wrap/DataLoader.tsx | 12 +++++++++--- .../frontend/src/components/wrap/RequireAuth.tsx | 6 +----- rsconcept/frontend/src/context/AccessModeContext.tsx | 7 +------ rsconcept/frontend/src/context/AuthContext.tsx | 6 +----- .../frontend/src/context/ConceptOptionsContext.tsx | 6 +----- rsconcept/frontend/src/context/GlobalOssContext.tsx | 6 +----- rsconcept/frontend/src/context/LibraryContext.tsx | 6 +----- rsconcept/frontend/src/context/NavigationContext.tsx | 6 +----- rsconcept/frontend/src/context/OssContext.tsx | 3 +-- rsconcept/frontend/src/context/RSFormContext.tsx | 3 +-- .../frontend/src/context/UserProfileContext.tsx | 6 +----- rsconcept/frontend/src/context/UsersContext.tsx | 6 +----- .../frontend/src/pages/OssPage/OssEditContext.tsx | 4 +--- .../frontend/src/pages/RSFormPage/RSEditContext.tsx | 3 +-- 19 files changed, 40 insertions(+), 70 deletions(-) diff --git a/rsconcept/frontend/src/app/GlobalProviders.tsx b/rsconcept/frontend/src/app/GlobalProviders.tsx index 3ae8310e..43b36a46 100644 --- a/rsconcept/frontend/src/app/GlobalProviders.tsx +++ b/rsconcept/frontend/src/app/GlobalProviders.tsx @@ -23,7 +23,7 @@ const logError = (error: Error, info: { componentStack?: string | null | undefin }; // prettier-ignore -function GlobalProviders({ children }: { children: React.ReactNode }) { +function GlobalProviders({ children }: React.PropsWithChildren) { return ( ; - children: React.ReactNode; } export interface IconProps { @@ -164,7 +163,7 @@ export interface IconProps { className?: string; } -function MetaIconSVG({ viewBox, size = '1.5rem', className, props, children }: IconSVGProps) { +function MetaIconSVG({ viewBox, size = '1.5rem', className, props, children }: React.PropsWithChildren) { return ( ) { return (
boolean; onSubmit?: () => void; onCancel?: () => void; - - children: React.ReactNode; } function Modal({ @@ -45,7 +43,7 @@ function Modal({ overflowVisible, submitText = 'Продолжить', ...restProps -}: ModalProps) { +}: React.PropsWithChildren) { const ref = useRef(null); useEscapeKey(hideWindow); diff --git a/rsconcept/frontend/src/components/ui/Overlay.tsx b/rsconcept/frontend/src/components/ui/Overlay.tsx index cbb009ea..de8b0708 100644 --- a/rsconcept/frontend/src/components/ui/Overlay.tsx +++ b/rsconcept/frontend/src/components/ui/Overlay.tsx @@ -4,12 +4,17 @@ import { CProps } from '../props'; interface OverlayProps extends CProps.Styling { id?: string; - children: React.ReactNode; position?: string; layer?: string; } -function Overlay({ children, className, position = 'top-0 right-0', layer = 'z-pop', ...restProps }: OverlayProps) { +function Overlay({ + children, + className, + position = 'top-0 right-0', + layer = 'z-pop', + ...restProps +}: React.PropsWithChildren) { return (
diff --git a/rsconcept/frontend/src/components/wrap/DataLoader.tsx b/rsconcept/frontend/src/components/wrap/DataLoader.tsx index 3bd58acc..488d8b8f 100644 --- a/rsconcept/frontend/src/components/wrap/DataLoader.tsx +++ b/rsconcept/frontend/src/components/wrap/DataLoader.tsx @@ -11,11 +11,17 @@ interface DataLoaderProps extends CProps.AnimatedDiv { isLoading?: boolean; error?: ErrorData; hasNoData?: boolean; - - children: React.ReactNode; } -function DataLoader({ id, isLoading, hasNoData, error, className, children, ...restProps }: DataLoaderProps) { +function DataLoader({ + id, + isLoading, + hasNoData, + error, + className, + children, + ...restProps +}: React.PropsWithChildren) { return ( {!isLoading && !error && !hasNoData ? ( diff --git a/rsconcept/frontend/src/components/wrap/RequireAuth.tsx b/rsconcept/frontend/src/components/wrap/RequireAuth.tsx index bd5f1bcd..08c7cc19 100644 --- a/rsconcept/frontend/src/components/wrap/RequireAuth.tsx +++ b/rsconcept/frontend/src/components/wrap/RequireAuth.tsx @@ -8,11 +8,7 @@ import Loader from '../ui/Loader'; import TextURL from '../ui/TextURL'; import AnimateFade from './AnimateFade'; -interface RequireAuthProps { - children: React.ReactNode; -} - -function RequireAuth({ children }: RequireAuthProps) { +function RequireAuth({ children }: React.PropsWithChildren) { const { user, loading } = useAuth(); return ( diff --git a/rsconcept/frontend/src/context/AccessModeContext.tsx b/rsconcept/frontend/src/context/AccessModeContext.tsx index 1a0732a1..2819e121 100644 --- a/rsconcept/frontend/src/context/AccessModeContext.tsx +++ b/rsconcept/frontend/src/context/AccessModeContext.tsx @@ -19,12 +19,7 @@ export const useAccessMode = () => { return context; }; -interface AccessModeStateProps { - children: React.ReactNode; -} - -export const AccessModeState = ({ children }: AccessModeStateProps) => { +export const AccessModeState = ({ children }: React.PropsWithChildren) => { const [accessLevel, setAccessLevel] = useState(UserLevel.READER); - return {children}; }; diff --git a/rsconcept/frontend/src/context/AuthContext.tsx b/rsconcept/frontend/src/context/AuthContext.tsx index ef9e9355..26eb2f65 100644 --- a/rsconcept/frontend/src/context/AuthContext.tsx +++ b/rsconcept/frontend/src/context/AuthContext.tsx @@ -52,11 +52,7 @@ export const useAuth = () => { return context; }; -interface AuthStateProps { - children: React.ReactNode; -} - -export const AuthState = ({ children }: AuthStateProps) => { +export const AuthState = ({ children }: React.PropsWithChildren) => { const { users } = useUsers(); const [user, setUser] = useState(undefined); const [loading, setLoading] = useState(true); diff --git a/rsconcept/frontend/src/context/ConceptOptionsContext.tsx b/rsconcept/frontend/src/context/ConceptOptionsContext.tsx index 434c6955..e6b790ed 100644 --- a/rsconcept/frontend/src/context/ConceptOptionsContext.tsx +++ b/rsconcept/frontend/src/context/ConceptOptionsContext.tsx @@ -52,11 +52,7 @@ export const useConceptOptions = () => { return context; }; -interface OptionsStateProps { - children: React.ReactNode; -} - -export const OptionsState = ({ children }: OptionsStateProps) => { +export const OptionsState = ({ children }: React.PropsWithChildren) => { const [darkMode, setDarkMode] = useLocalStorage(storage.themeDark, false); const [adminMode, setAdminMode] = useLocalStorage(storage.optionsAdmin, false); const [showHelp, setShowHelp] = useLocalStorage(storage.optionsHelp, true); diff --git a/rsconcept/frontend/src/context/GlobalOssContext.tsx b/rsconcept/frontend/src/context/GlobalOssContext.tsx index 32345a4b..17fc78c1 100644 --- a/rsconcept/frontend/src/context/GlobalOssContext.tsx +++ b/rsconcept/frontend/src/context/GlobalOssContext.tsx @@ -32,11 +32,7 @@ export const useGlobalOss = (): IGlobalOssContext => { return context; }; -interface GlobalOssStateProps { - children: React.ReactNode; -} - -export const GlobalOssState = ({ children }: GlobalOssStateProps) => { +export const GlobalOssState = ({ children }: React.PropsWithChildren) => { const library = useLibrary(); const [isValid, setIsValid] = useState(false); const [ossID, setIdInternal] = useState(undefined); diff --git a/rsconcept/frontend/src/context/LibraryContext.tsx b/rsconcept/frontend/src/context/LibraryContext.tsx index 4296fa86..00d04c33 100644 --- a/rsconcept/frontend/src/context/LibraryContext.tsx +++ b/rsconcept/frontend/src/context/LibraryContext.tsx @@ -61,11 +61,7 @@ export const useLibrary = (): ILibraryContext => { return context; }; -interface LibraryStateProps { - children: React.ReactNode; -} - -export const LibraryState = ({ children }: LibraryStateProps) => { +export const LibraryState = ({ children }: React.PropsWithChildren) => { const { user, loading: userLoading } = useAuth(); const { adminMode } = useConceptOptions(); diff --git a/rsconcept/frontend/src/context/NavigationContext.tsx b/rsconcept/frontend/src/context/NavigationContext.tsx index 91e0accf..4a73562f 100644 --- a/rsconcept/frontend/src/context/NavigationContext.tsx +++ b/rsconcept/frontend/src/context/NavigationContext.tsx @@ -27,11 +27,7 @@ export const useConceptNavigation = () => { return context; }; -interface NavigationStateProps { - children: React.ReactNode; -} - -export const NavigationState = ({ children }: NavigationStateProps) => { +export const NavigationState = ({ children }: React.PropsWithChildren) => { const router = useNavigate(); const { pathname } = useLocation(); diff --git a/rsconcept/frontend/src/context/OssContext.tsx b/rsconcept/frontend/src/context/OssContext.tsx index 58aac7ce..34607a9e 100644 --- a/rsconcept/frontend/src/context/OssContext.tsx +++ b/rsconcept/frontend/src/context/OssContext.tsx @@ -78,10 +78,9 @@ export const useOSS = () => { interface OssStateProps { itemID: string; - children: React.ReactNode; } -export const OssState = ({ itemID, children }: OssStateProps) => { +export const OssState = ({ itemID, children }: React.PropsWithChildren) => { const library = useLibrary(); const oss = useGlobalOss(); const model = oss.schema; diff --git a/rsconcept/frontend/src/context/RSFormContext.tsx b/rsconcept/frontend/src/context/RSFormContext.tsx index 1a142190..5d8e4802 100644 --- a/rsconcept/frontend/src/context/RSFormContext.tsx +++ b/rsconcept/frontend/src/context/RSFormContext.tsx @@ -107,10 +107,9 @@ export const useRSForm = () => { interface RSFormStateProps { itemID: string; versionID?: string; - children: React.ReactNode; } -export const RSFormState = ({ itemID, versionID, children }: RSFormStateProps) => { +export const RSFormState = ({ itemID, versionID, children }: React.PropsWithChildren) => { const library = useLibrary(); const oss = useGlobalOss(); const { user } = useAuth(); diff --git a/rsconcept/frontend/src/context/UserProfileContext.tsx b/rsconcept/frontend/src/context/UserProfileContext.tsx index cd6d695b..dd53418c 100644 --- a/rsconcept/frontend/src/context/UserProfileContext.tsx +++ b/rsconcept/frontend/src/context/UserProfileContext.tsx @@ -30,11 +30,7 @@ export const useUserProfile = () => { return context; }; -interface UserProfileStateProps { - children: React.ReactNode; -} - -export const UserProfileState = ({ children }: UserProfileStateProps) => { +export const UserProfileState = ({ children }: React.PropsWithChildren) => { const { users } = useUsers(); const [user, setUser] = useState(undefined); const [loading, setLoading] = useState(true); diff --git a/rsconcept/frontend/src/context/UsersContext.tsx b/rsconcept/frontend/src/context/UsersContext.tsx index 9ad93863..2981d18b 100644 --- a/rsconcept/frontend/src/context/UsersContext.tsx +++ b/rsconcept/frontend/src/context/UsersContext.tsx @@ -21,11 +21,7 @@ export const useUsers = (): IUsersContext => { return context; }; -interface UsersStateProps { - children: React.ReactNode; -} - -export const UsersState = ({ children }: UsersStateProps) => { +export const UsersState = ({ children }: React.PropsWithChildren) => { const [users, setUsers] = useState([]); function getUserLabel(userID: number | null) { diff --git a/rsconcept/frontend/src/pages/OssPage/OssEditContext.tsx b/rsconcept/frontend/src/pages/OssPage/OssEditContext.tsx index 4a24364e..cdc44105 100644 --- a/rsconcept/frontend/src/pages/OssPage/OssEditContext.tsx +++ b/rsconcept/frontend/src/pages/OssPage/OssEditContext.tsx @@ -86,13 +86,11 @@ export const useOssEdit = () => { }; interface OssEditStateProps { - // isModified: boolean; selected: OperationID[]; setSelected: React.Dispatch>; - children: React.ReactNode; } -export const OssEditState = ({ selected, setSelected, children }: OssEditStateProps) => { +export const OssEditState = ({ selected, setSelected, children }: React.PropsWithChildren) => { const router = useConceptNavigation(); const { user } = useAuth(); const { adminMode } = useConceptOptions(); diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSEditContext.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSEditContext.tsx index 71904194..216e90ae 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSEditContext.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSEditContext.tsx @@ -126,7 +126,6 @@ interface RSEditStateProps { onCreateCst?: (newCst: IConstituentaMeta) => void; onDeleteCst?: (newActive?: ConstituentaID) => void; - children: React.ReactNode; } export const RSEditState = ({ @@ -137,7 +136,7 @@ export const RSEditState = ({ onCreateCst, onDeleteCst, children -}: RSEditStateProps) => { +}: React.PropsWithChildren) => { const router = useConceptNavigation(); const { user } = useAuth(); const { adminMode } = useConceptOptions();