mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
535fa71020
Run eslint --fix across src/ to clear ~1900 mechanical lint errors surfaced by the @typescript-eslint v8 + react-hooks v7 + react-compiler upgrade in the React 19 modernization PR. Issues fixed automatically: - brace-style (Allman): try/catch one-liners reformatted to multi-line - indent: tab-vs-space and depth corrections - semi: missing trailing semicolons - no-trailing-spaces No semantic changes. Remaining 701 errors are real-code issues (set-state-in-effect, rules-of-hooks, no-unsafe-* type checks) that need manual per-file review. https://claude.ai/code/session_01GrR87LAqnAEyKG2ZbmQt5Q
53 lines
2.4 KiB
TypeScript
53 lines
2.4 KiB
TypeScript
import * as Popover from '@radix-ui/react-popover';
|
|
import { FC, useState } from 'react';
|
|
import { Flex, Grid, NitroCardContentView } from '../../../../common';
|
|
|
|
interface ChatInputStyleSelectorViewProps
|
|
{
|
|
chatStyleId: number;
|
|
chatStyleIds: number[];
|
|
selectChatStyleId: (styleId: number) => void;
|
|
}
|
|
|
|
export const ChatInputStyleSelectorView: FC<ChatInputStyleSelectorViewProps> = props =>
|
|
{
|
|
const { chatStyleIds = null, selectChatStyleId = null } = props;
|
|
const [ selectorVisible, setSelectorVisible ] = useState(false);
|
|
|
|
const selectStyle = (styleId: number) =>
|
|
{
|
|
selectChatStyleId(styleId);
|
|
setSelectorVisible(false);
|
|
};
|
|
|
|
return (
|
|
<Popover.Root open={selectorVisible} onOpenChange={setSelectorVisible}>
|
|
<Popover.Trigger asChild>
|
|
<div className="chatstyles-anchor">
|
|
<div className="nitro-icon chatstyles-icon" />
|
|
</div>
|
|
</Popover.Trigger>
|
|
<Popover.Portal>
|
|
<Popover.Content
|
|
side="top"
|
|
sideOffset={12}
|
|
className="max-w-[276px] not-italic font-normal leading-normal text-left no-underline normal-case tracking-normal whitespace-normal text-[.7875rem] [word-wrap:break-word] bg-[#dfdfdf] bg-clip-padding border border-solid border-[#283F5D] rounded-[.25rem] [box-shadow:0_2px_#00000073] z-[1070]"
|
|
>
|
|
<NitroCardContentView className="bg-transparent max-h-[210px]!" overflow="hidden">
|
|
<Grid columnCount={3} overflow="auto">
|
|
{chatStyleIds && chatStyleIds.length > 0 && chatStyleIds.map(styleId => (
|
|
<Flex key={styleId} center pointer className="h-[35px] w-[65px]" onClick={() => selectStyle(styleId)}>
|
|
<div className="bubble-container relative w-[50px]">
|
|
<div className={`relative max-w-[65px] min-h-[26px] text-[14px] chat-bubble bubble-${styleId}`} />
|
|
</div>
|
|
</Flex>
|
|
))}
|
|
</Grid>
|
|
</NitroCardContentView>
|
|
<Popover.Arrow className="fill-black" width={14} height={7} />
|
|
</Popover.Content>
|
|
</Popover.Portal>
|
|
</Popover.Root>
|
|
);
|
|
};
|