chore: remove account and memo

This commit is contained in:
Aslam H
2024-11-09 15:12:26 +07:00
parent b8336d50e6
commit fe5f3ac1b9
3 changed files with 54 additions and 49 deletions
@@ -1,5 +1,4 @@
import { icons } from "lucide-react" import { icons } from "lucide-react"
import { LaAccount } from "@/lib/schema"
import { HTMLLikeElement } from "@/lib/utils" import { HTMLLikeElement } from "@/lib/utils"
import { useCommandActions } from "~/hooks/actions/use-command-actions" import { useCommandActions } from "~/hooks/actions/use-command-actions"
@@ -44,7 +43,6 @@ const createNavigationItem = (
export const createCommandGroups = ( export const createCommandGroups = (
actions: ReturnType<typeof useCommandActions>, actions: ReturnType<typeof useCommandActions>,
me: LaAccount,
): Record<string, CommandGroupType> => ({ ): Record<string, CommandGroupType> => ({
home: [ home: [
{ {
@@ -97,7 +95,7 @@ export const createCommandGroups = (
icon: "Plus", icon: "Plus",
value: "Create New Page...", value: "Create New Page...",
label: "Create New Page...", label: "Create New Page...",
action: () => actions.createNewPage(me), action: () => actions.createNewPage(),
}, },
], ],
}, },
@@ -10,17 +10,23 @@ export interface CommandItemProps extends Omit<CommandItemType, "action"> {
handleAction: (action: CommandAction, payload?: any) => void handleAction: (action: CommandAction, payload?: any) => void
} }
const HTMLLikeRenderer: React.FC<{ content: HTMLLikeElement | string }> = const HTMLLikeRenderer: React.FC<{ content: HTMLLikeElement | string }> = ({
React.memo(({ content }) => { content,
return ( }) => {
<span className="line-clamp-1">{renderHTMLLikeElement(content)}</span> return <span className="line-clamp-1">{renderHTMLLikeElement(content)}</span>
) }
})
HTMLLikeRenderer.displayName = "HTMLLikeRenderer" HTMLLikeRenderer.displayName = "HTMLLikeRenderer"
export const CommandItem: React.FC<CommandItemProps> = React.memo( export const CommandItem: React.FC<CommandItemProps> = ({
({ icon, label, action, payload, shortcut, handleAction, ...item }) => ( icon,
label,
action,
payload,
shortcut,
handleAction,
...item
}) => (
<Command.Item <Command.Item
value={`${item.id}-${item.value}`} value={`${item.id}-${item.value}`}
onSelect={() => handleAction(action, payload)} onSelect={() => handleAction(action, payload)}
@@ -29,7 +35,6 @@ export const CommandItem: React.FC<CommandItemProps> = React.memo(
<HTMLLikeRenderer content={label} /> <HTMLLikeRenderer content={label} />
{shortcut && <CommandShortcut>{shortcut}</CommandShortcut>} {shortcut && <CommandShortcut>{shortcut}</CommandShortcut>}
</Command.Item> </Command.Item>
),
) )
CommandItem.displayName = "CommandItem" CommandItem.displayName = "CommandItem"
@@ -41,8 +46,12 @@ export interface CommandGroupProps {
isLastGroup: boolean isLastGroup: boolean
} }
export const CommandGroup: React.FC<CommandGroupProps> = React.memo( export const CommandGroup: React.FC<CommandGroupProps> = ({
({ heading, items, handleAction, isLastGroup }) => { heading,
items,
handleAction,
isLastGroup,
}) => {
return ( return (
<> <>
{heading ? ( {heading ? (
@@ -67,7 +76,6 @@ export const CommandGroup: React.FC<CommandGroupProps> = React.memo(
{!isLastGroup && <CommandSeparator className="my-1.5" />} {!isLastGroup && <CommandSeparator className="my-1.5" />}
</> </>
) )
}, }
)
CommandGroup.displayName = "CommandGroup" CommandGroup.displayName = "CommandGroup"
@@ -32,17 +32,16 @@ export function CommandPalette() {
} }
export function RealCommandPalette() { export function RealCommandPalette() {
const { me } = useAccount({ root: { personalLinks: [], personalPages: [] } }) const { me } = useAccount({
root: { personalLinks: [{}], personalPages: [{}] },
})
const dialogRef = React.useRef<HTMLDivElement | null>(null) const dialogRef = React.useRef<HTMLDivElement | null>(null)
const [inputValue, setInputValue] = React.useState("") const [inputValue, setInputValue] = React.useState("")
const [activePage, setActivePage] = React.useState("home") const [activePage, setActivePage] = React.useState("home")
const [open, setOpen] = useAtom(commandPaletteOpenAtom) const [open, setOpen] = useAtom(commandPaletteOpenAtom)
const actions = useCommandActions() const actions = useCommandActions()
const commandGroups = React.useMemo( const commandGroups = createCommandGroups(actions)
() => me && createCommandGroups(actions, me),
[actions, me],
)
const bounce = React.useCallback(() => { const bounce = React.useCallback(() => {
if (dialogRef.current) { if (dialogRef.current) {