diff --git a/docs/todo/0-kickstart.md b/docs/todo/0-kickstart.md index 2b990197a..b366b9649 100644 --- a/docs/todo/0-kickstart.md +++ b/docs/todo/0-kickstart.md @@ -8,11 +8,19 @@ Use this file when you’re not sure what to do next, or you want a quick “mak - Skim: [../START_HERE.md](../START_HERE.md) and [../INDEX.md](../INDEX.md) - Then pick the most relevant TODO file from [./README.md](README.md) +## How These TODOs Work + +- Keep items small and actionable (one change set per checkbox when possible) +- When you complete an item, mark it `[x]` and add a short reference (commit hash or PR) +- If an item grows, split it into follow-ups (or a new numbered TODO file) and link it from [./README.md](README.md) +- Prefer including concrete file paths and commands in TODO items + ## 15-Minute Local Sanity Check (Frontend) Run from `frontends/nextjs/`: -- [ ] `cd frontends/nextjs` +From repo root: `cd frontends/nextjs` + - [ ] `npm ci` (or `npm install`) - [ ] `npm run typecheck` - [ ] `npm run lint` diff --git a/frontends/nextjs/src/components/PasswordChangeDialog.tsx b/frontends/nextjs/src/components/PasswordChangeDialog.tsx index ec86255cf..95587bd72 100644 --- a/frontends/nextjs/src/components/PasswordChangeDialog.tsx +++ b/frontends/nextjs/src/components/PasswordChangeDialog.tsx @@ -41,8 +41,8 @@ export function PasswordChangeDialog({ open, username, onPasswordChanged, isFirs } return ( - {}}> - e.preventDefault()}> + {}} disableEscapeKeyDown> + {isFirstLogin && } diff --git a/frontends/nextjs/src/components/molecules/Tabs.tsx b/frontends/nextjs/src/components/molecules/Tabs.tsx index 8d172ebaf..1d456f4b9 100644 --- a/frontends/nextjs/src/components/molecules/Tabs.tsx +++ b/frontends/nextjs/src/components/molecules/Tabs.tsx @@ -58,11 +58,11 @@ export interface TabsTriggerProps extends Omit { value: string } -const TabsTrigger = forwardRef( +const TabsTrigger = forwardRef( ({ value, label, children, sx, ...props }, ref) => { return ( } value={value} label={label || children} sx={{ diff --git a/frontends/nextjs/src/components/organisms/Sidebar.tsx b/frontends/nextjs/src/components/organisms/Sidebar.tsx index d15424356..de6ee99c7 100644 --- a/frontends/nextjs/src/components/organisms/Sidebar.tsx +++ b/frontends/nextjs/src/components/organisms/Sidebar.tsx @@ -235,9 +235,11 @@ SidebarGroupLabel.displayName = 'SidebarGroupLabel' const SidebarGroupContent = forwardRef( ({ children, ...props }, ref) => { return ( - - {children} - + + + {children} + + ) } ) @@ -255,12 +257,13 @@ interface SidebarMenuItemProps { className?: string } -const SidebarMenuItem = forwardRef( +const SidebarMenuItem = forwardRef( ({ children, icon, label, href, active, disabled, onClick, ...props }, ref) => { const content = children || label return ( - + + ( primaryTypographyProps={{ fontSize: '0.875rem' }} /> + ) } @@ -295,12 +299,14 @@ const SidebarMenuItem = forwardRef( SidebarMenuItem.displayName = 'SidebarMenuItem' // SidebarMenu (alias for List) -const SidebarMenu = forwardRef( +const SidebarMenu = forwardRef( ({ children, ...props }, ref) => { return ( - - {children} - + + + {children} + + ) } ) diff --git a/frontends/nextjs/src/components/ui/atoms/Input.tsx b/frontends/nextjs/src/components/ui/atoms/Input.tsx index 31a5f8a57..96fcc0138 100644 --- a/frontends/nextjs/src/components/ui/atoms/Input.tsx +++ b/frontends/nextjs/src/components/ui/atoms/Input.tsx @@ -8,7 +8,9 @@ export interface InputProps extends Omit, } const Input = forwardRef( - ({ type, error, ...props }, ref) => { + ({ type, error, className, style, ...props }, ref) => { + // Filter out HTML-specific props that conflict with MUI + const { color, ...restProps } = props as InputProps & { color?: string } return ( ( p: 0, }, }} - {...props} + {...restProps} /> ) }