From 58d43c3fc56602decd499dbb488ad39496eaf161 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Sun, 20 Jul 2025 13:55:43 +0530 Subject: [PATCH 1/5] fix: Workspace - Selected users to invite turn deselected when refresh Add message page. Signed-off-by: krishna2323 --- src/components/OptionListContextProvider.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/OptionListContextProvider.tsx b/src/components/OptionListContextProvider.tsx index 9eef3e2b12ab..cd600f04a643 100644 --- a/src/components/OptionListContextProvider.tsx +++ b/src/components/OptionListContextProvider.tsx @@ -266,11 +266,13 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { const [isLoadingApp] = useOnyx(ONYXKEYS.IS_LOADING_APP, {canBeMissing: false}); const [internalOptions, setInternalOptions] = useState(optionsList); const prevOptions = useRef(null); + const [areInternalOptionsInitialized, setAreInternalOptionsInitialized] = useState(false); useEffect(() => { if (!prevOptions.current) { prevOptions.current = optionsList; setInternalOptions(optionsList); + setAreInternalOptionsInitialized(true); return; } /** @@ -283,6 +285,7 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { return; } setInternalOptions(optionsList); + setAreInternalOptionsInitialized(true); }, [optionsList]); useEffect(() => { @@ -293,14 +296,19 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { initializeOptions(); }, [shouldInitialize, initializeOptions, areOptionsInitialized, isLoadingApp]); + const resetInternalOptions = useCallback(() => { + setAreInternalOptionsInitialized(false); + resetOptions(); + }, [resetOptions]); + return useMemo( () => ({ initializeOptions, options: internalOptions, - areOptionsInitialized, - resetOptions, + areOptionsInitialized: areInternalOptionsInitialized, + resetOptions: resetInternalOptions, }), - [initializeOptions, internalOptions, areOptionsInitialized, resetOptions], + [initializeOptions, internalOptions, resetInternalOptions, areInternalOptionsInitialized], ); }; From cbbdb3378ee7f53de1d91c926d42fe7e9dcfa3fc Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Sun, 20 Jul 2025 17:27:28 +0530 Subject: [PATCH 2/5] fix empty screen when options are loading after reset. Signed-off-by: krishna2323 --- src/components/OptionListContextProvider.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/OptionListContextProvider.tsx b/src/components/OptionListContextProvider.tsx index cd600f04a643..d81d021531c4 100644 --- a/src/components/OptionListContextProvider.tsx +++ b/src/components/OptionListContextProvider.tsx @@ -272,7 +272,7 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { if (!prevOptions.current) { prevOptions.current = optionsList; setInternalOptions(optionsList); - setAreInternalOptionsInitialized(true); + setAreInternalOptionsInitialized(areOptionsInitialized); return; } /** @@ -285,8 +285,8 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { return; } setInternalOptions(optionsList); - setAreInternalOptionsInitialized(true); - }, [optionsList]); + setAreInternalOptionsInitialized(areOptionsInitialized); + }, [optionsList, areOptionsInitialized]); useEffect(() => { if (!shouldInitialize || areOptionsInitialized || isLoadingApp) { From 18ba38a3c48dc73c37e6479846aef6c8c73ebb08 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Sun, 20 Jul 2025 18:23:26 +0530 Subject: [PATCH 3/5] minor update. Signed-off-by: krishna2323 --- src/components/OptionListContextProvider.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/OptionListContextProvider.tsx b/src/components/OptionListContextProvider.tsx index d81d021531c4..1a1fdf8e7342 100644 --- a/src/components/OptionListContextProvider.tsx +++ b/src/components/OptionListContextProvider.tsx @@ -269,10 +269,12 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { const [areInternalOptionsInitialized, setAreInternalOptionsInitialized] = useState(false); useEffect(() => { + if (!areInternalOptionsInitialized) { + setAreInternalOptionsInitialized(areOptionsInitialized); + } if (!prevOptions.current) { prevOptions.current = optionsList; setInternalOptions(optionsList); - setAreInternalOptionsInitialized(areOptionsInitialized); return; } /** @@ -285,8 +287,7 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { return; } setInternalOptions(optionsList); - setAreInternalOptionsInitialized(areOptionsInitialized); - }, [optionsList, areOptionsInitialized]); + }, [optionsList, areOptionsInitialized, areInternalOptionsInitialized]); useEffect(() => { if (!shouldInitialize || areOptionsInitialized || isLoadingApp) { From b67e6871739069b0c873cbc1987f08b15b616d09 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Thu, 24 Jul 2025 00:23:17 +0530 Subject: [PATCH 4/5] minro update. Signed-off-by: krishna2323 --- src/components/OptionListContextProvider.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/OptionListContextProvider.tsx b/src/components/OptionListContextProvider.tsx index 1a1fdf8e7342..84c0ce641b9c 100644 --- a/src/components/OptionListContextProvider.tsx +++ b/src/components/OptionListContextProvider.tsx @@ -269,9 +269,13 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { const [areInternalOptionsInitialized, setAreInternalOptionsInitialized] = useState(false); useEffect(() => { - if (!areInternalOptionsInitialized) { - setAreInternalOptionsInitialized(areOptionsInitialized); + if (areInternalOptionsInitialized) { + return; } + setAreInternalOptionsInitialized(areOptionsInitialized); + }, [areInternalOptionsInitialized, areOptionsInitialized]); + + useEffect(() => { if (!prevOptions.current) { prevOptions.current = optionsList; setInternalOptions(optionsList); @@ -287,7 +291,7 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { return; } setInternalOptions(optionsList); - }, [optionsList, areOptionsInitialized, areInternalOptionsInitialized]); + }, [optionsList, areOptionsInitialized]); useEffect(() => { if (!shouldInitialize || areOptionsInitialized || isLoadingApp) { From af4d93ceae0435c3ed0178c049339377ac583c07 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Fri, 25 Jul 2025 00:18:36 +0530 Subject: [PATCH 5/5] remove useEffect. Signed-off-by: krishna2323 --- src/components/OptionListContextProvider.tsx | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/components/OptionListContextProvider.tsx b/src/components/OptionListContextProvider.tsx index 84c0ce641b9c..d81d021531c4 100644 --- a/src/components/OptionListContextProvider.tsx +++ b/src/components/OptionListContextProvider.tsx @@ -268,17 +268,11 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { const prevOptions = useRef(null); const [areInternalOptionsInitialized, setAreInternalOptionsInitialized] = useState(false); - useEffect(() => { - if (areInternalOptionsInitialized) { - return; - } - setAreInternalOptionsInitialized(areOptionsInitialized); - }, [areInternalOptionsInitialized, areOptionsInitialized]); - useEffect(() => { if (!prevOptions.current) { prevOptions.current = optionsList; setInternalOptions(optionsList); + setAreInternalOptionsInitialized(areOptionsInitialized); return; } /** @@ -291,6 +285,7 @@ const useOptionsList = (options?: {shouldInitialize: boolean}) => { return; } setInternalOptions(optionsList); + setAreInternalOptionsInitialized(areOptionsInitialized); }, [optionsList, areOptionsInitialized]); useEffect(() => {