The react-admin Store is a global, synchronous, persistent key-value database used for storing user preferences (e.g., interface language, theme, UI state). It persists between page loads using browser localStorage (or memory storage if localStorage is unavailable) and is automatically emptied when a user logs out.
It requires no setup and is available via several hooks. You can use it to manage simple UI states like toggling a panel or saving a user's preference.
import { useStore } from 'react-admin';
import { Button, Popover } from '@mui/material';
const HelpButton = () => {
// useStore(key, defaultValue)
const [helpOpen, setHelpOpen] = useStore('help.open', false);
return (
<>
<Button onClick={() => setHelpOpen(v => !v)}>
{helpOpen ? 'Hide' : 'Show'} help
</Button>
<Popover open={helpOpen} onClose={() => setHelpOpen(false)}>
Help Content
</Popover>
</>
);
};