From 7a45d467b750edf9c3cefb3cf57e5a4893dde1f0 Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins <matiss@mja.lv> Date: Tue, 5 Dec 2023 18:58:22 +0000 Subject: [PATCH] :recycle: (eslint) enable 'react/no-children-prop' rule and fix issues (#2029) --- .eslintrc.js | 1 - packages/desktop-client/src/components/NotesButton.tsx | 8 +++----- packages/desktop-client/src/components/ScrollProvider.tsx | 7 +++---- packages/desktop-client/src/components/Titlebar.tsx | 7 +++---- .../src/components/budget/report/ReportContext.tsx | 5 +++-- .../src/components/budget/rollover/RolloverContext.tsx | 5 +++-- packages/desktop-client/src/hooks/useSelected.tsx | 8 +++----- packages/loot-core/src/client/data-hooks/accounts.tsx | 4 +++- packages/loot-core/src/client/data-hooks/payees.tsx | 4 +++- packages/loot-core/src/client/data-hooks/schedules.tsx | 6 +++++- packages/loot-core/src/client/query-hooks.tsx | 2 +- upcoming-release-notes/2029.md | 6 ++++++ 12 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 upcoming-release-notes/2029.md diff --git a/.eslintrc.js b/.eslintrc.js index b2d03eb5b..d0eadff98 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 59ab11122..3c65b4a1f 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 45c39e0ac..b959fbc40 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 aa55d0800..5c50871ec 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 fc9927882..3f746cfd5 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 706999c7c..7006ae78e 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 21455ab4e..934318e36 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 084060f3b..7bcde4b7b 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 f5b1956ac..8197d50e7 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 a139658c9..0a46c38e9 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 329f466b7..52314faa3 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 000000000..68c09ee2a --- /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 -- GitLab