diff --git a/.eslintrc.js b/.eslintrc.js index b2d03eb5b43b29da6a9f394957aa4b870ba81579..d0eadff98ccc0cc50e6effa0df36827a2b4eafaa 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -82,7 +82,6 @@ module.exports = { // TODO: re-enable these rules 'react-hooks/exhaustive-deps': 'off', - 'react/no-children-prop': 'off', 'react/display-name': 'off', 'react/react-in-jsx-scope': 'off', // 'react-hooks/exhaustive-deps': [ diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx index 59ab1112259c6a6bcdf30d464264c5827dc2b2dc..3c65b4a1f86ddb59d972823d5f9873979aec64f9 100644 --- a/packages/desktop-client/src/components/NotesButton.tsx +++ b/packages/desktop-client/src/components/NotesButton.tsx @@ -124,11 +124,9 @@ function NotesTooltip({ /> ) : ( <Text {...markdownStyles}> - <ReactMarkdown - remarkPlugins={remarkPlugins} - linkTarget="_blank" - children={notes} - /> + <ReactMarkdown remarkPlugins={remarkPlugins} linkTarget="_blank"> + {notes} + </ReactMarkdown> </Text> )} </Tooltip> diff --git a/packages/desktop-client/src/components/ScrollProvider.tsx b/packages/desktop-client/src/components/ScrollProvider.tsx index 45c39e0ac8e08efe8d3d26850798d8995b968a2a..b959fbc40b8561537e0ea15c42863077522c657d 100644 --- a/packages/desktop-client/src/components/ScrollProvider.tsx +++ b/packages/desktop-client/src/components/ScrollProvider.tsx @@ -42,10 +42,9 @@ export default function ScrollProvider({ children }: ScrollProviderProps) { }, []); return ( - <ScrollContext.Provider - value={{ scrollY, isBottomReached }} - children={children} - /> + <ScrollContext.Provider value={{ scrollY, isBottomReached }}> + {children} + </ScrollContext.Provider> ); } diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index aa55d08005e539521b16b44bf8baabfb670dfe50..5c50871ec2b05c3a4a5911e1b67b393ccf22d39a 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -78,10 +78,9 @@ export function TitlebarProvider({ children }: TitlebarProviderProps) { } return ( - <TitlebarContext.Provider - value={{ sendEvent, subscribe }} - children={children} - /> + <TitlebarContext.Provider value={{ sendEvent, subscribe }}> + {children} + </TitlebarContext.Provider> ); } diff --git a/packages/desktop-client/src/components/budget/report/ReportContext.tsx b/packages/desktop-client/src/components/budget/report/ReportContext.tsx index fc9927882e703fd1afdd359a204d3a23ed6ea4d0..3f746cfd5b0a0d0b48b782c96139b0247b3d0b1f 100644 --- a/packages/desktop-client/src/components/budget/report/ReportContext.tsx +++ b/packages/desktop-client/src/components/budget/report/ReportContext.tsx @@ -26,8 +26,9 @@ export function ReportProvider({ onBudgetAction, onToggleSummaryCollapse, }} - children={children} - /> + > + {children} + </Context.Provider> ); } diff --git a/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx b/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx index 706999c7cbb47139ae0836580543b7b64b74bbdc..7006ae78ee8498d939d9703df2376b4448a1e899 100644 --- a/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx +++ b/packages/desktop-client/src/components/budget/rollover/RolloverContext.tsx @@ -29,8 +29,9 @@ export function RolloverContext({ onBudgetAction, onToggleSummaryCollapse, }} - children={children} - /> + > + {children} + </Context.Provider> ); } diff --git a/packages/desktop-client/src/hooks/useSelected.tsx b/packages/desktop-client/src/hooks/useSelected.tsx index 21455ab4ecd34258d8312a171bf995b422b98f3c..934318e3661c0f0256761503e3105f8d902bf98b 100644 --- a/packages/desktop-client/src/hooks/useSelected.tsx +++ b/packages/desktop-client/src/hooks/useSelected.tsx @@ -340,10 +340,8 @@ export function SelectedProviderWithItems<T extends Item>({ }, [registerDispatch]); return ( - <SelectedProvider<T> - instance={selected} - fetchAllIds={fetchAllIds} - children={children} - /> + <SelectedProvider<T> instance={selected} fetchAllIds={fetchAllIds}> + {children} + </SelectedProvider> ); } diff --git a/packages/loot-core/src/client/data-hooks/accounts.tsx b/packages/loot-core/src/client/data-hooks/accounts.tsx index 084060f3b87b665a30dcd24a001c52dcda4d859d..7bcde4b7bfcac318955c5d2edbfd26c898736f40 100644 --- a/packages/loot-core/src/client/data-hooks/accounts.tsx +++ b/packages/loot-core/src/client/data-hooks/accounts.tsx @@ -13,7 +13,9 @@ const AccountsContext = createContext<AccountEntity[]>(null); export function AccountsProvider({ children }) { const data = useAccounts(); - return <AccountsContext.Provider value={data} children={children} />; + return ( + <AccountsContext.Provider value={data}>{children}</AccountsContext.Provider> + ); } export function CachedAccounts({ children, idKey }) { diff --git a/packages/loot-core/src/client/data-hooks/payees.tsx b/packages/loot-core/src/client/data-hooks/payees.tsx index f5b1956aca47a037c789b9adab646ead93bdaf83..8197d50e7af76d49cf8cfa892b480251d8b55bf8 100644 --- a/packages/loot-core/src/client/data-hooks/payees.tsx +++ b/packages/loot-core/src/client/data-hooks/payees.tsx @@ -13,7 +13,9 @@ const PayeesContext = createContext<PayeeEntity[]>(null); export function PayeesProvider({ children }) { const data = usePayees(); - return <PayeesContext.Provider value={data} children={children} />; + return ( + <PayeesContext.Provider value={data}>{children}</PayeesContext.Provider> + ); } export function CachedPayees({ children, idKey }) { diff --git a/packages/loot-core/src/client/data-hooks/schedules.tsx b/packages/loot-core/src/client/data-hooks/schedules.tsx index a139658c9b25ec9b6af69510ab0345436a3f65c2..0a46c38e96f89cb0cda4a5b4b0974ddcbe167d90 100644 --- a/packages/loot-core/src/client/data-hooks/schedules.tsx +++ b/packages/loot-core/src/client/data-hooks/schedules.tsx @@ -69,7 +69,11 @@ const SchedulesContext = createContext(null); export function SchedulesProvider({ transform, children }) { const data = useSchedules({ transform }); - return <SchedulesContext.Provider value={data} children={children} />; + return ( + <SchedulesContext.Provider value={data}> + {children} + </SchedulesContext.Provider> + ); } export function useCachedSchedules() { diff --git a/packages/loot-core/src/client/query-hooks.tsx b/packages/loot-core/src/client/query-hooks.tsx index 329f466b7362785d99cce68f0f44ddd53262b159..52314faa3764c6867d86ad96fc588286081883ca 100644 --- a/packages/loot-core/src/client/query-hooks.tsx +++ b/packages/loot-core/src/client/query-hooks.tsx @@ -46,7 +46,7 @@ function makeContext(queryState, opts, QueryClass) { }; }, []); - return <Context.Provider value={value} children={children} />; + return <Context.Provider value={value}>{children}</Context.Provider>; } function useQuery() { diff --git a/upcoming-release-notes/2029.md b/upcoming-release-notes/2029.md new file mode 100644 index 0000000000000000000000000000000000000000..68c09ee2a4610440096e1dbd99be9ebd7b2478c1 --- /dev/null +++ b/upcoming-release-notes/2029.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +Enable `react/no-children-prop` rule and fix the issues