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

@ -109,9 +109,9 @@ export const CommandMenu = () => {
const openActivityRightDrawer = useOpenActivityRightDrawer();
const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState);
const [commandMenuSearch, setCommandMenuSearch] = useRecoilState(
commandMenuSearchState,
commandMenuSearchState(),
);
const commandMenuCommands = useRecoilValue(commandMenuCommandsState);
const commandMenuCommands = useRecoilValue(commandMenuCommandsState());
const { closeKeyboardShortcutMenu } = useKeyboardShortcutMenu();
const handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {

View File

@ -27,9 +27,9 @@ const meta: Meta<typeof CommandMenu> = {
component: CommandMenu,
decorators: [
(Story) => {
const setCurrentWorkspace = useSetRecoilState(currentWorkspaceState);
const setCurrentWorkspace = useSetRecoilState(currentWorkspaceState());
const setCurrentWorkspaceMember = useSetRecoilState(
currentWorkspaceMemberState,
currentWorkspaceMemberState(),
);
const { addToCommandMenu, setToInitialCommandMenu, openCommandMenu } =
useCommandMenu();

View File

@ -25,7 +25,7 @@ const renderHooks = () => {
const commandMenu = useCommandMenu();
const isCommandMenuOpened = useRecoilValue(isCommandMenuOpenedState);
const [commandMenuCommands, setCommandMenuCommands] = useRecoilState(
commandMenuCommandsState,
commandMenuCommandsState(),
);
return {

View File

@ -17,7 +17,7 @@ import { Command } from '../types/Command';
export const useCommandMenu = () => {
const navigate = useNavigate();
const setIsCommandMenuOpened = useSetRecoilState(isCommandMenuOpenedState);
const setCommands = useSetRecoilState(commandMenuCommandsState);
const setCommands = useSetRecoilState(commandMenuCommandsState());
const { resetSelectedItem } = useSelectableList('command-menu-list');
const {
setHotkeyScopeAndMemorizePreviousScope,
@ -52,7 +52,7 @@ export const useCommandMenu = () => {
.getLoadable(isCommandMenuOpenedState)
.getValue();
set(commandMenuSearchState, '');
set(commandMenuSearchState(), '');
if (isCommandMenuOpened) {
closeCommandMenu();

View File

@ -1,10 +1,10 @@
import { atom } from 'recoil';
import { createState } from '@/ui/utilities/state/utils/createState';
import { Command, CommandType } from '../types/Command';
export const commandMenuCommandsState = atom<Command[]>({
export const commandMenuCommandsState = createState<Command[]>({
key: 'command-menu/commandMenuCommandsState',
default: [
defaultValue: [
{
id: '',
to: '',

View File

@ -1,6 +1,6 @@
import { atom } from 'recoil';
import { createState } from '@/ui/utilities/state/utils/createState';
export const commandMenuSearchState = atom<string>({
export const commandMenuSearchState = createState<string>({
key: 'command-menu/commandMenuSearchState',
default: '',
defaultValue: '',
});