Introduce ComponentState (#4386)

* Proof of concept ComponentState

* Migrate to createState and createFamilyState

* Refactor

* Fix

* Fix tests

* Fix lint

* Fix tests

* Re-enable coverage
This commit is contained in:
Charles Bochet
2024-03-09 11:31:00 +01:00
committed by GitHub
parent 17511be0cf
commit 86c0f311f5
451 changed files with 1718 additions and 2557 deletions

View File

@ -28,12 +28,12 @@ export const AppNavigationDrawer = ({
const isMobile = useIsMobile();
const isSettingsPage = useIsSettingsPage();
const currentMobileNavigationDrawer = useRecoilValue(
currentMobileNavigationDrawerState,
currentMobileNavigationDrawerState(),
);
const setIsNavigationDrawerOpen = useSetRecoilState(
isNavigationDrawerOpenState,
);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const currentWorkspace = useRecoilValue(currentWorkspaceState());
const isSettingsDrawer = isMobile
? currentMobileNavigationDrawer === 'settings'

View File

@ -24,11 +24,13 @@ export const MainNavigationDrawerItems = () => {
const isMobile = useIsMobile();
const { toggleCommandMenu } = useCommandMenu();
const isTasksPage = useIsTasksPage();
const currentUserDueTaskCount = useRecoilValue(currentUserDueTaskCountState);
const currentUserDueTaskCount = useRecoilValue(
currentUserDueTaskCountState(),
);
const navigate = useNavigate();
const location = useLocation();
const setNavigationMemorizedUrl = useSetRecoilState(
navigationMemorizedUrlState,
navigationMemorizedUrlState(),
);
return (

View File

@ -30,7 +30,7 @@ export const MobileNavigationBar = () => {
isNavigationDrawerOpenState,
);
const [currentMobileNavigationDrawer, setCurrentMobileNavigationDrawer] =
useRecoilState(currentMobileNavigationDrawerState);
useRecoilState(currentMobileNavigationDrawerState());
const activeItemName = isNavigationDrawerOpen
? currentMobileNavigationDrawer

View File

@ -24,7 +24,7 @@ const MobileNavigationDrawerStateSetterEffect = ({
isNavigationDrawerOpenState,
);
const setCurrentMobileNavigationDrawer = useSetRecoilState(
currentMobileNavigationDrawerState,
currentMobileNavigationDrawerState(),
);
useEffect(() => {

View File

@ -1,6 +1,8 @@
import { atom } from 'recoil';
import { createState } from '@/ui/utilities/state/utils/createState';
export const currentMobileNavigationDrawerState = atom<'main' | 'settings'>({
export const currentMobileNavigationDrawerState = createState<
'main' | 'settings'
>({
key: 'currentMobileNavigationDrawerState',
default: 'main',
defaultValue: 'main',
});