afeef8e04a
figma https://www.figma.com/design/xt8O9mFeLl46C5InWwoMrN/Twenty?node-id=93630-365000&t=QesAkY3JOyI9D3UU-0 https://github.com/user-attachments/assets/cf3b354d-0b08-41ae-91ae-386054b5cb2e https://github.com/user-attachments/assets/73bfd676-f823-44c9-a70d-107c20523664 --------- Co-authored-by: Charles Bochet <charles@twenty.com>
26 lines
766 B
TypeScript
26 lines
766 B
TypeScript
import { sidePanelPageState } from '@/side-panel/states/sidePanelPageState';
|
|
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
|
|
import { useEffect } from 'react';
|
|
import { SidePanelPages } from 'twenty-shared/types';
|
|
|
|
type SidePanelTopBarInputFocusEffectProps = {
|
|
inputRef: React.RefObject<HTMLInputElement>;
|
|
};
|
|
|
|
export const SidePanelTopBarInputFocusEffect = ({
|
|
inputRef,
|
|
}: SidePanelTopBarInputFocusEffectProps) => {
|
|
const sidePanelPage = useAtomStateValue(sidePanelPageState);
|
|
|
|
useEffect(() => {
|
|
if (
|
|
sidePanelPage === SidePanelPages.CommandMenuDisplay ||
|
|
sidePanelPage === SidePanelPages.SearchRecords
|
|
) {
|
|
inputRef.current?.focus();
|
|
}
|
|
}, [sidePanelPage, inputRef]);
|
|
|
|
return null;
|
|
};
|