feat: ui fixed
This commit is contained in:
parent
1a636b0f50
commit
9569888b0e
|
@ -12,6 +12,7 @@ interface Action {
|
||||||
icons: JSX.Element | IconMap;
|
icons: JSX.Element | IconMap;
|
||||||
className?: string;
|
className?: string;
|
||||||
onClick?: () => void;
|
onClick?: () => void;
|
||||||
|
activeClassName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
type Groups = {
|
type Groups = {
|
||||||
|
@ -100,7 +101,7 @@ export default function ActionsBar(props: ActionsBarProps) {
|
||||||
key={action.id}
|
key={action.id}
|
||||||
className={`cursor-pointer p-3 ${
|
className={`cursor-pointer p-3 ${
|
||||||
selected === action.id
|
selected === action.id
|
||||||
? "bg-actions-bar-btn-default"
|
? `!bg-actions-bar-btn-default ${action.activeClassName}`
|
||||||
: "bg-transparent"
|
: "bg-transparent"
|
||||||
} rounded-md items-center ${action.className}`}
|
} rounded-md items-center ${action.className}`}
|
||||||
onClick={handlerClick(action)}
|
onClick={handlerClick(action)}
|
||||||
|
|
|
@ -36,10 +36,10 @@ export default function Btn(props: {
|
||||||
} text-text-btn-primary `;
|
} text-text-btn-primary `;
|
||||||
break;
|
break;
|
||||||
case "danger":
|
case "danger":
|
||||||
btnClassName = `bg-danger-btn text-text-btn-danger`;
|
btnClassName = `bg-danger-btn text-text-btn-danger hover:bg-hovered-btn`;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
btnClassName = `bg-default-btn text-text-btn-default`;
|
btnClassName = `bg-default-btn text-text-btn-default hover:bg-hovered-btn`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -73,11 +73,11 @@ export default function MenuLayout<
|
||||||
max-md:w-[100%] max-md:px-4 max-md:pb-4 max-md:flex-1
|
max-md:w-[100%] max-md:px-4 max-md:pb-4 max-md:flex-1
|
||||||
md:relative md:basis-sidebar md:h-[calc(100%-1.25rem)] md:pb-6 md:rounded-md md:my-2.5 md:bg-menu
|
md:relative md:basis-sidebar md:h-[calc(100%-1.25rem)] md:pb-6 md:rounded-md md:my-2.5 md:bg-menu
|
||||||
`}
|
`}
|
||||||
onClick={(e) => {
|
// onClick={(e) => {
|
||||||
if (e.target === e.currentTarget) {
|
// if (e.target === e.currentTarget) {
|
||||||
navigate(Path.Home);
|
// navigate(Path.Home);
|
||||||
}
|
// }
|
||||||
}}
|
// }}
|
||||||
>
|
>
|
||||||
<ListComponent
|
<ListComponent
|
||||||
{...props}
|
{...props}
|
||||||
|
|
|
@ -79,7 +79,7 @@ export default function Popover(props: PopoverProps) {
|
||||||
|
|
||||||
const mergedShow = show ?? internalShow;
|
const mergedShow = show ?? internalShow;
|
||||||
|
|
||||||
const { arrowClassName, placementStyle } = useMemo(() => {
|
const { arrowClassName, placementStyle, placementClassName } = useMemo(() => {
|
||||||
const arrowCommonClassName = `${
|
const arrowCommonClassName = `${
|
||||||
noArrow ? "hidden" : ""
|
noArrow ? "hidden" : ""
|
||||||
} absolute z-10 left-[50%] translate-x-[calc(-50%)]`;
|
} absolute z-10 left-[50%] translate-x-[calc(-50%)]`;
|
||||||
|
@ -105,28 +105,32 @@ export default function Popover(props: PopoverProps) {
|
||||||
bottom: `calc(${distanceToBottomBoundary + targetH}px + 0.5rem)`,
|
bottom: `calc(${distanceToBottomBoundary + targetH}px + 0.5rem)`,
|
||||||
left: `calc(${distanceToLeftBoundary}px - ${targetW * 0.02}px)`,
|
left: `calc(${distanceToLeftBoundary}px - ${targetW * 0.02}px)`,
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)]`,
|
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)] pb-[0.5rem]`,
|
||||||
|
placementClassName: "bottom-[calc(100%+0.5rem)] left-[calc(-2%)]",
|
||||||
},
|
},
|
||||||
lb: {
|
lb: {
|
||||||
placementStyle: {
|
placementStyle: {
|
||||||
top: `calc(-${distanceToBottomBoundary}px + 0.5rem)`,
|
top: `calc(-${distanceToBottomBoundary}px + 0.5rem)`,
|
||||||
left: `calc(${distanceToLeftBoundary}px - ${targetW * 0.02}px)`,
|
left: `calc(${distanceToLeftBoundary}px - ${targetW * 0.02}px)`,
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)]`,
|
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)] pt-[0.5rem]`,
|
||||||
|
placementClassName: "top-[calc(100%+0.5rem)] left-[calc(-2%)]",
|
||||||
},
|
},
|
||||||
rt: {
|
rt: {
|
||||||
placementStyle: {
|
placementStyle: {
|
||||||
bottom: `calc(${distanceToBottomBoundary + targetH}px + 0.5rem)`,
|
bottom: `calc(${distanceToBottomBoundary + targetH}px + 0.5rem)`,
|
||||||
right: `calc(${distanceToRightBoundary}px - ${targetW * 0.02}px)`,
|
right: `calc(${distanceToRightBoundary}px - ${targetW * 0.02}px)`,
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)]`,
|
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)] pb-[0.5rem]`,
|
||||||
|
placementClassName: "bottom-[calc(100%+0.5rem)] right-[calc(-2%)]",
|
||||||
},
|
},
|
||||||
rb: {
|
rb: {
|
||||||
placementStyle: {
|
placementStyle: {
|
||||||
top: `calc(-${distanceToBottomBoundary}px + 0.5rem)`,
|
top: `calc(-${distanceToBottomBoundary}px + 0.5rem)`,
|
||||||
right: `calc(${distanceToRightBoundary}px - ${targetW * 0.02}px)`,
|
right: `calc(${distanceToRightBoundary}px - ${targetW * 0.02}px)`,
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)]`,
|
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)] pt-[0.5rem]`,
|
||||||
|
placementClassName: "top-[calc(100%+0.5rem)] right-[calc(-2%)]",
|
||||||
},
|
},
|
||||||
t: {
|
t: {
|
||||||
placementStyle: {
|
placementStyle: {
|
||||||
|
@ -134,7 +138,9 @@ export default function Popover(props: PopoverProps) {
|
||||||
left: `calc(${distanceToLeftBoundary + targetW / 2}px`,
|
left: `calc(${distanceToLeftBoundary + targetW / 2}px`,
|
||||||
transform: "translateX(-50%)",
|
transform: "translateX(-50%)",
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)]`,
|
arrowClassName: `${arrowCommonClassName} bottom-[calc(100%+0.5rem)] translate-y-[calc(100%)] pb-[0.5rem]`,
|
||||||
|
placementClassName:
|
||||||
|
"bottom-[calc(100%+0.5rem)] left-[50%] translate-x-[calc(-50%)]",
|
||||||
},
|
},
|
||||||
b: {
|
b: {
|
||||||
placementStyle: {
|
placementStyle: {
|
||||||
|
@ -142,7 +148,9 @@ export default function Popover(props: PopoverProps) {
|
||||||
left: `calc(${distanceToLeftBoundary + targetW / 2}px`,
|
left: `calc(${distanceToLeftBoundary + targetW / 2}px`,
|
||||||
transform: "translateX(-50%)",
|
transform: "translateX(-50%)",
|
||||||
},
|
},
|
||||||
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)]`,
|
arrowClassName: `${arrowCommonClassName} top-[calc(100%+0.5rem)] translate-y-[calc(-100%)] pt-[0.5rem]`,
|
||||||
|
placementClassName:
|
||||||
|
"top-[calc(100%+0.5rem)] left-[50%] translate-x-[calc(-50%)]",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -236,54 +244,83 @@ export default function Popover(props: PopoverProps) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// return (
|
||||||
|
// <div
|
||||||
|
// className={`relative ${className}`}
|
||||||
|
// onPointerEnter={(e) => {
|
||||||
|
// e.preventDefault();
|
||||||
|
// clearTimeout(closeTimer.current);
|
||||||
|
// onShow?.(true);
|
||||||
|
// setShow(true);
|
||||||
|
// getRelativePosition(e.currentTarget, "");
|
||||||
|
// window.document.documentElement.style.overflow = "hidden";
|
||||||
|
// }}
|
||||||
|
// onPointerLeave={(e) => {
|
||||||
|
// e.preventDefault();
|
||||||
|
// if (delayClose) {
|
||||||
|
// closeTimer.current = window.setTimeout(() => {
|
||||||
|
// onShow?.(false);
|
||||||
|
// setShow(false);
|
||||||
|
// }, delayClose);
|
||||||
|
// } else {
|
||||||
|
// onShow?.(false);
|
||||||
|
// setShow(false);
|
||||||
|
// }
|
||||||
|
// window.document.documentElement.style.overflow = "auto";
|
||||||
|
// }}
|
||||||
|
// >
|
||||||
|
// {children}
|
||||||
|
// {mergedShow && (
|
||||||
|
// <>
|
||||||
|
// <div
|
||||||
|
// className={`${
|
||||||
|
// noArrow ? "opacity-0" : ""
|
||||||
|
// } bg-inherit ${arrowClassName}`}
|
||||||
|
// style={{ zIndex: baseZIndex + 1 }}
|
||||||
|
// >
|
||||||
|
// <ArrowIcon sibling={popoverRef} />
|
||||||
|
// </div>
|
||||||
|
// {createPortal(
|
||||||
|
// <div
|
||||||
|
// className={` whitespace-nowrap ${popoverCommonClass} ${popoverClassName} cursor-pointer`}
|
||||||
|
// style={{ zIndex: baseZIndex + 1, ...placementStyle }}
|
||||||
|
// ref={popoverRef}
|
||||||
|
// >
|
||||||
|
// {content}
|
||||||
|
// </div>,
|
||||||
|
// popoverRoot,
|
||||||
|
// )}
|
||||||
|
// </>
|
||||||
|
// )}
|
||||||
|
// </div>
|
||||||
|
// );
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={`relative ${className}`}
|
className={`group relative ${className}`}
|
||||||
onPointerEnter={(e) => {
|
onPointerEnter={(e) => {
|
||||||
e.preventDefault();
|
|
||||||
clearTimeout(closeTimer.current);
|
|
||||||
onShow?.(true);
|
|
||||||
setShow(true);
|
|
||||||
getRelativePosition(e.currentTarget, "");
|
getRelativePosition(e.currentTarget, "");
|
||||||
window.document.documentElement.style.overflow = "hidden";
|
|
||||||
}}
|
|
||||||
onPointerLeave={(e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
if (delayClose) {
|
|
||||||
closeTimer.current = window.setTimeout(() => {
|
|
||||||
onShow?.(false);
|
|
||||||
setShow(false);
|
|
||||||
}, delayClose);
|
|
||||||
} else {
|
|
||||||
onShow?.(false);
|
|
||||||
setShow(false);
|
|
||||||
}
|
|
||||||
window.document.documentElement.style.overflow = "auto";
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
{mergedShow && (
|
<div
|
||||||
<>
|
className={`
|
||||||
<div
|
hidden group-hover:block
|
||||||
className={`${
|
${noArrow ? "opacity-0" : ""}
|
||||||
noArrow ? "opacity-0" : ""
|
bg-inherit
|
||||||
} bg-inherit ${arrowClassName}`}
|
${arrowClassName}
|
||||||
style={{ zIndex: baseZIndex + 1 }}
|
`}
|
||||||
>
|
style={{ zIndex: baseZIndex + 1 }}
|
||||||
<ArrowIcon sibling={popoverRef} />
|
>
|
||||||
</div>
|
<ArrowIcon sibling={popoverRef} />
|
||||||
{createPortal(
|
</div>
|
||||||
<div
|
<div
|
||||||
className={` whitespace-nowrap ${popoverCommonClass} ${popoverClassName} cursor-pointer`}
|
className={`hidden group-hover:block whitespace-nowrap ${popoverCommonClass} ${placementClassName} ${popoverClassName}`}
|
||||||
style={{ zIndex: baseZIndex + 1, ...placementStyle }}
|
ref={popoverRef}
|
||||||
ref={popoverRef}
|
style={{ zIndex: 10000 }}
|
||||||
>
|
>
|
||||||
{content}
|
{content}
|
||||||
</div>,
|
</div>
|
||||||
popoverRoot,
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ const Select = <Value extends number | string>(props: SearchProps<Value>) => {
|
||||||
{options?.map((o) => (
|
{options?.map((o) => (
|
||||||
<div
|
<div
|
||||||
key={o.value}
|
key={o.value}
|
||||||
className={`flex items-center p-3 gap-2 rounded-action-btn hover:bg-select-option-hovered`}
|
className={`flex items-center p-3 gap-2 rounded-action-btn hover:bg-select-option-hovered cursor-pointer`}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
onSelect?.(o.value);
|
onSelect?.(o.value);
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -182,7 +182,7 @@ export function ChatActions(props: {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={act.text}
|
key={act.text}
|
||||||
className={`flex items-center gap-3 p-3 rounded-action-btn leading-6`}
|
className={`flex items-center gap-3 p-3 rounded-action-btn leading-6 cursor-pointer`}
|
||||||
onClick={act.onClick}
|
onClick={act.onClick}
|
||||||
>
|
>
|
||||||
{act.icon}
|
{act.icon}
|
||||||
|
|
|
@ -180,7 +180,7 @@ export default function ChatMessagePanel(props: ChatMessagePanelProps) {
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
className={`group relative flex-1 flex ${
|
className={`group relative flex flex ${
|
||||||
isUser ? "flex-row-reverse" : ""
|
isUser ? "flex-row-reverse" : ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
|
|
|
@ -261,17 +261,13 @@ export default function MessageActions(props: MessageActionsProps) {
|
||||||
showActions && (
|
showActions && (
|
||||||
<div
|
<div
|
||||||
className={`
|
className={`
|
||||||
absolute z-10
|
absolute z-10 w-[100%]
|
||||||
${isUser ? "right-0" : "left-0"}
|
${isUser ? "right-0" : "left-0"}
|
||||||
transition-all duration-300
|
transition-all duration-300
|
||||||
opacity-0
|
opacity-0
|
||||||
pointer-events-none
|
pointer-events-none
|
||||||
group-hover:opacity-100
|
group-hover:opacity-100
|
||||||
group-hover:pointer-events-auto
|
group-hover:pointer-events-auto
|
||||||
bg-chat-message-actions
|
|
||||||
rounded-md
|
|
||||||
shadow-message-actions-bar
|
|
||||||
dark:bg-none
|
|
||||||
${className}
|
${className}
|
||||||
`}
|
`}
|
||||||
>
|
>
|
||||||
|
@ -285,7 +281,13 @@ export default function MessageActions(props: MessageActionsProps) {
|
||||||
onUserStop,
|
onUserStop,
|
||||||
})}
|
})}
|
||||||
groups={groupsTypes[groupsType]}
|
groups={groupsTypes[groupsType]}
|
||||||
className="flex flex-row gap-1 p-1"
|
className={`
|
||||||
|
float-right flex flex-row gap-1 p-1
|
||||||
|
bg-chat-message-actions
|
||||||
|
rounded-md
|
||||||
|
shadow-message-actions-bar
|
||||||
|
dark:bg-none
|
||||||
|
`}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
@ -54,12 +54,17 @@ export function SessionItem(props: {
|
||||||
<Draggable draggableId={`${props.id}`} index={props.index}>
|
<Draggable draggableId={`${props.id}`} index={props.index}>
|
||||||
{(provided) => (
|
{(provided) => (
|
||||||
<div
|
<div
|
||||||
className={`group/chat-menu-list relative flex p-3 items-center gap-2 self-stretch rounded-md mb-2 ${
|
className={`
|
||||||
props.selected &&
|
group/chat-menu-list relative flex p-3 items-center gap-2 self-stretch rounded-md mb-2
|
||||||
(currentPath === Path.Chat || currentPath === Path.Home)
|
border
|
||||||
? `bg-chat-menu-session-selected border-chat-menu-session-selected border `
|
bg-chat-menu-session-unselected border-chat-menu-session-unselected
|
||||||
: `bg-chat-menu-session-unselected hover:bg-chat-menu-session-hovered`
|
${
|
||||||
}`}
|
props.selected &&
|
||||||
|
(currentPath === Path.Chat || currentPath === Path.Home)
|
||||||
|
? `!bg-chat-menu-session-selected !border-chat-menu-session-selected`
|
||||||
|
: `hover:bg-chat-menu-session-hovered hover:chat-menu-session-hovered`
|
||||||
|
}
|
||||||
|
`}
|
||||||
onClick={props.onClick}
|
onClick={props.onClick}
|
||||||
ref={(ele) => {
|
ref={(ele) => {
|
||||||
draggableRef.current = ele;
|
draggableRef.current = ele;
|
||||||
|
@ -94,7 +99,7 @@ export function SessionItem(props: {
|
||||||
<Popover
|
<Popover
|
||||||
content={
|
content={
|
||||||
<div
|
<div
|
||||||
className={`flex items-center gap-3 p-3 rounded-action-btn leading-6`}
|
className={`flex items-center gap-3 p-3 rounded-action-btn leading-6 cursor-pointer`}
|
||||||
onClickCapture={(e) => {
|
onClickCapture={(e) => {
|
||||||
props.onDelete?.();
|
props.onDelete?.();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -208,12 +213,12 @@ export default MenuLayout(function SessionList(props) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className={`flex-1 overflow-y-auto overflow-x-hidden`}
|
className={`flex-1 overflow-y-auto`}
|
||||||
onClick={(e) => {
|
// onClick={(e) => {
|
||||||
if (e.target === e.currentTarget) {
|
// if (e.target === e.currentTarget) {
|
||||||
navigate(Path.Home);
|
// navigate(Path.Home);
|
||||||
}
|
// }
|
||||||
}}
|
// }}
|
||||||
>
|
>
|
||||||
<DragDropContext onDragEnd={onDragEnd}>
|
<DragDropContext onDragEnd={onDragEnd}>
|
||||||
<Droppable droppableId="chat-list">
|
<Droppable droppableId="chat-list">
|
||||||
|
|
|
@ -5,6 +5,7 @@ import Panel from "./SettingPanel";
|
||||||
|
|
||||||
import GotoIcon from "@/app/icons/goto.svg";
|
import GotoIcon from "@/app/icons/goto.svg";
|
||||||
import { useAppConfig } from "@/app/store";
|
import { useAppConfig } from "@/app/store";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
export default MenuLayout(function SettingList(props) {
|
export default MenuLayout(function SettingList(props) {
|
||||||
const { setShowPanel } = props;
|
const { setShowPanel } = props;
|
||||||
|
@ -12,12 +13,21 @@ export default MenuLayout(function SettingList(props) {
|
||||||
|
|
||||||
const { isMobileScreen } = config;
|
const { isMobileScreen } = config;
|
||||||
|
|
||||||
|
const list = [
|
||||||
|
{
|
||||||
|
id: Locale.Settings.GeneralSettings,
|
||||||
|
title: Locale.Settings.GeneralSettings,
|
||||||
|
icon: null,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const [selected, setSelected] = useState(list[0].id);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={`
|
className={`
|
||||||
px-6
|
|
||||||
max-md:h-[100%] max-md:mx-[-1.5rem] max-md:py-6 max-md:bg-settings-menu-mobile
|
max-md:h-[100%] max-md:mx-[-1.5rem] max-md:py-6 max-md:bg-settings-menu-mobile
|
||||||
md:pt-7 md:px-4
|
md:pt-7
|
||||||
`}
|
`}
|
||||||
>
|
>
|
||||||
<div data-tauri-drag-region>
|
<div data-tauri-drag-region>
|
||||||
|
@ -25,7 +35,7 @@ export default MenuLayout(function SettingList(props) {
|
||||||
className={`
|
className={`
|
||||||
flex items-center justify-between
|
flex items-center justify-between
|
||||||
max-md:h-menu-title-mobile
|
max-md:h-menu-title-mobile
|
||||||
md:pb-5
|
md:pb-5 md:px-4
|
||||||
`}
|
`}
|
||||||
data-tauri-drag-region
|
data-tauri-drag-region
|
||||||
>
|
>
|
||||||
|
@ -38,22 +48,35 @@ export default MenuLayout(function SettingList(props) {
|
||||||
<div
|
<div
|
||||||
className={`flex flex-col overflow-y-auto overflow-x-hidden w-[100%]`}
|
className={`flex flex-col overflow-y-auto overflow-x-hidden w-[100%]`}
|
||||||
>
|
>
|
||||||
<div
|
{list.map((i) => (
|
||||||
className={`
|
<div
|
||||||
p-4 font-common text-setting-items font-normal text-text-settings-menu-item-title
|
key={i.id}
|
||||||
border
|
className={`
|
||||||
border-opacity-0 rounded-md
|
p-4 font-common text-setting-items font-normal text-text-settings-menu-item-title
|
||||||
hover:border-opacity-100 hover:font-semibold hover:bg-settings-menu-item-selected
|
cursor-pointer
|
||||||
flex justify-between items-center
|
border
|
||||||
max-md:bg-settings-menu-item-mobile
|
rounded-md
|
||||||
`}
|
|
||||||
onClick={() => {
|
bg-chat-menu-session-unselected border-chat-menu-session-unselected
|
||||||
setShowPanel?.(true);
|
${
|
||||||
}}
|
selected === i.id && !isMobileScreen
|
||||||
>
|
? `!bg-chat-menu-session-selected !border-chat-menu-session-selected`
|
||||||
{Locale.Settings.GeneralSettings}
|
: `hover:bg-chat-menu-session-hovered hover:chat-menu-session-hovered`
|
||||||
{isMobileScreen && <GotoIcon />}
|
}
|
||||||
</div>
|
|
||||||
|
hover:border-opacity-100 hover:font-semibold hover:bg-settings-menu-item-selected
|
||||||
|
flex justify-between items-center
|
||||||
|
max-md:bg-settings-menu-item-mobile
|
||||||
|
`}
|
||||||
|
onClick={() => {
|
||||||
|
setShowPanel?.(true);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{i.title}
|
||||||
|
{i.icon}
|
||||||
|
{isMobileScreen && <GotoIcon />}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -61,6 +61,8 @@ export function SideBar(props: { className?: string }) {
|
||||||
mobileInactive: <DiscoverMobileInactive />,
|
mobileInactive: <DiscoverMobileInactive />,
|
||||||
},
|
},
|
||||||
title: "Discover",
|
title: "Discover",
|
||||||
|
activeClassName: "shadow-sidebar-btn-shadow",
|
||||||
|
className: "mb-4 hover:bg-sidebar-btn-hovered",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: Path.Home,
|
id: Path.Home,
|
||||||
|
@ -71,11 +73,13 @@ export function SideBar(props: { className?: string }) {
|
||||||
mobileInactive: <AssistantMobileInactive />,
|
mobileInactive: <AssistantMobileInactive />,
|
||||||
},
|
},
|
||||||
title: "Assistant",
|
title: "Assistant",
|
||||||
|
activeClassName: "shadow-sidebar-btn-shadow",
|
||||||
|
className: "mb-4 hover:bg-sidebar-btn-hovered",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "github",
|
id: "github",
|
||||||
icons: <GitHubIcon />,
|
icons: <GitHubIcon />,
|
||||||
className: "p-2",
|
className: "!p-2 mb-3 hover:bg-sidebar-btn-hovered",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: Path.Settings,
|
id: Path.Settings,
|
||||||
|
@ -85,7 +89,7 @@ export function SideBar(props: { className?: string }) {
|
||||||
mobileActive: <SettingMobileActive />,
|
mobileActive: <SettingMobileActive />,
|
||||||
mobileInactive: <SettingMobileInactive />,
|
mobileInactive: <SettingMobileInactive />,
|
||||||
},
|
},
|
||||||
className: "p-2",
|
className: "!p-2 hover:bg-sidebar-btn-hovered",
|
||||||
title: "Settrings",
|
title: "Settrings",
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
|
|
|
@ -77,6 +77,10 @@ body {
|
||||||
--delete-chat-cancel-btn-bg: #fff;
|
--delete-chat-cancel-btn-bg: #fff;
|
||||||
--delete-chat-cancel-btn-text: #18182a;
|
--delete-chat-cancel-btn-text: #18182a;
|
||||||
--delete-chat-cancel-btn-border: #e2e2e6;
|
--delete-chat-cancel-btn-border: #e2e2e6;
|
||||||
|
--sidebar-btn-hovered-bg: rgba(0, 0, 0, 0.05);
|
||||||
|
--chat-menu-session-unselected-border: #f0f0f3;
|
||||||
|
--chat-menu-session-hovered-border: #e2e2e6;
|
||||||
|
--hovered-btn-bg: rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark {
|
.dark {
|
||||||
|
|
|
@ -90,6 +90,7 @@ module.exports = {
|
||||||
'primary-btn-disabled': 'var(--primary-btn-disabled-bg)',
|
'primary-btn-disabled': 'var(--primary-btn-disabled-bg)',
|
||||||
'danger-btn': 'var(--danger-btn-bg)',
|
'danger-btn': 'var(--danger-btn-bg)',
|
||||||
'default-btn': 'var(--default-widget-bg)',
|
'default-btn': 'var(--default-widget-bg)',
|
||||||
|
'hovered-btn': 'var(--hovered-btn-bg)',
|
||||||
'card': 'var(--similar-panel-bg)',
|
'card': 'var(--similar-panel-bg)',
|
||||||
'input': 'var(--default-widget-bg)',
|
'input': 'var(--default-widget-bg)',
|
||||||
'list-item-divider': 'var(--similar-line-bg)',
|
'list-item-divider': 'var(--similar-line-bg)',
|
||||||
|
@ -127,6 +128,7 @@ module.exports = {
|
||||||
'settings-header-mobile': 'var(--similar-highlight-hood-bg)',
|
'settings-header-mobile': 'var(--similar-highlight-hood-bg)',
|
||||||
'settings-panel': 'var(--default-container-bg)',
|
'settings-panel': 'var(--default-container-bg)',
|
||||||
'sidebar-mobile': 'var(--similar-highlight-hood-bg)',
|
'sidebar-mobile': 'var(--similar-highlight-hood-bg)',
|
||||||
|
'sidebar-btn-hovered': 'var(--sidebar-btn-hovered-bg)',
|
||||||
'delete-chat-popover-panel': 'var(--similar-panel-bg)',
|
'delete-chat-popover-panel': 'var(--similar-panel-bg)',
|
||||||
'confirm-mask': 'var(--confirm-mask-bg)',
|
'confirm-mask': 'var(--confirm-mask-bg)',
|
||||||
'confirm-panel': 'var(--similar-panel-bg)',
|
'confirm-panel': 'var(--similar-panel-bg)',
|
||||||
|
@ -154,6 +156,7 @@ module.exports = {
|
||||||
'message-actions-bar': '0px 4px 30px 0px var(--small-widget-border)',
|
'message-actions-bar': '0px 4px 30px 0px var(--small-widget-border)',
|
||||||
'prompt-hint-container': 'inset 0 4px 8px 0 rgba(0, 0, 0, 0.1)',
|
'prompt-hint-container': 'inset 0 4px 8px 0 rgba(0, 0, 0, 0.1)',
|
||||||
'delete-chat-popover-shadow': '0px 0px 1px 0px rgba(0, 0, 0, 0.08), 0px 8px 20px 0px rgba(0, 0, 0, 0.08)',
|
'delete-chat-popover-shadow': '0px 0px 1px 0px rgba(0, 0, 0, 0.08), 0px 8px 20px 0px rgba(0, 0, 0, 0.08)',
|
||||||
|
'sidebar-btn-shadow': '4px 8px 16px 0px rgba(60, 68, 255, 0.20);',
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
'select-popover': 'var(--small-widget-border)',
|
'select-popover': 'var(--small-widget-border)',
|
||||||
|
@ -169,6 +172,8 @@ module.exports = {
|
||||||
'settings-header': 'var(--panel-header-border)',
|
'settings-header': 'var(--panel-header-border)',
|
||||||
'delete-chat-popover': 'var(--small-widget-border)',
|
'delete-chat-popover': 'var(--small-widget-border)',
|
||||||
'delete-chat-cancel-btn': 'var(--delete-chat-cancel-btn-border)',
|
'delete-chat-cancel-btn': 'var(--delete-chat-cancel-btn-border)',
|
||||||
|
'chat-menu-session-unselected': 'var(--chat-menu-session-unselected-border)',
|
||||||
|
'chat-menu-session-hovered': 'var(--chat-menu-session-hovered-border)',
|
||||||
'text-sidebar-tab-mobile-active': 'var(--sidebar-tab-mobile-active-text)',
|
'text-sidebar-tab-mobile-active': 'var(--sidebar-tab-mobile-active-text)',
|
||||||
'text-sidebar-tab-mobile-inactive': 'var(--weakness-text)',
|
'text-sidebar-tab-mobile-inactive': 'var(--weakness-text)',
|
||||||
'text-btn-primary': 'var(--bg-contract-text)',
|
'text-btn-primary': 'var(--bg-contract-text)',
|
||||||
|
|
Loading…
Reference in New Issue