Merge pull request #1159 from MODSetter/dev_mod
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions

refactor: improve UI
This commit is contained in:
Rohan Verma 2026-04-07 05:16:09 -07:00 committed by GitHub
commit 1a5d40e8f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -465,16 +465,14 @@ const AssistantActionBar: FC = () => {
const isLast = useAuiState((s) => s.message.isLast); const isLast = useAuiState((s) => s.message.isLast);
const aui = useAui(); const aui = useAui();
const api = useElectronAPI(); const api = useElectronAPI();
const [quickAskMode, setQuickAskMode] = useState(""); const [isQuickAssist, setIsQuickAssist] = useState(false);
useEffect(() => { useEffect(() => {
if (!isLast || !api?.getQuickAskMode) return; if (!api?.getQuickAskMode) return;
api.getQuickAskMode().then((mode) => { api.getQuickAskMode().then((mode) => {
if (mode) setQuickAskMode(mode); if (mode) setIsQuickAssist(true);
}); });
}, [isLast, api]); }, [api]);
const isTransform = isLast && !!api?.replaceText && quickAskMode === "transform";
return ( return (
<ActionBarPrimitive.Root <ActionBarPrimitive.Root
@ -484,7 +482,7 @@ const AssistantActionBar: FC = () => {
className="aui-assistant-action-bar-root -ml-1 col-start-3 row-start-2 flex gap-1 text-muted-foreground md:data-floating:absolute md:data-floating:rounded-md md:data-floating:p-1 [&>button]:opacity-100 md:[&>button]:opacity-[var(--aui-button-opacity,1)]" className="aui-assistant-action-bar-root -ml-1 col-start-3 row-start-2 flex gap-1 text-muted-foreground md:data-floating:absolute md:data-floating:rounded-md md:data-floating:p-1 [&>button]:opacity-100 md:[&>button]:opacity-[var(--aui-button-opacity,1)]"
> >
<ActionBarPrimitive.Copy asChild> <ActionBarPrimitive.Copy asChild>
<TooltipIconButton tooltip="Copy"> <TooltipIconButton tooltip="Copy to clipboard">
<AuiIf condition={({ message }) => message.isCopied}> <AuiIf condition={({ message }) => message.isCopied}>
<CheckIcon /> <CheckIcon />
</AuiIf> </AuiIf>
@ -494,29 +492,27 @@ const AssistantActionBar: FC = () => {
</TooltipIconButton> </TooltipIconButton>
</ActionBarPrimitive.Copy> </ActionBarPrimitive.Copy>
<ActionBarPrimitive.ExportMarkdown asChild> <ActionBarPrimitive.ExportMarkdown asChild>
<TooltipIconButton tooltip="Download"> <TooltipIconButton tooltip="Download as Markdown">
<DownloadIcon /> <DownloadIcon />
</TooltipIconButton> </TooltipIconButton>
</ActionBarPrimitive.ExportMarkdown> </ActionBarPrimitive.ExportMarkdown>
{isLast && ( {isLast && (
<ActionBarPrimitive.Reload asChild> <ActionBarPrimitive.Reload asChild>
<TooltipIconButton tooltip="Refresh"> <TooltipIconButton tooltip="Regenerate response">
<RefreshCwIcon /> <RefreshCwIcon />
</TooltipIconButton> </TooltipIconButton>
</ActionBarPrimitive.Reload> </ActionBarPrimitive.Reload>
)} )}
{isTransform && ( {isQuickAssist && (
<button <TooltipIconButton
type="button" tooltip="Paste back into source app"
onClick={() => { onClick={() => {
const text = aui.message().getCopyText(); const text = aui.message().getCopyText();
api?.replaceText(text); api?.replaceText(text);
}} }}
className="ml-1 inline-flex items-center gap-1.5 rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground transition-colors hover:bg-primary/90"
> >
<ClipboardPaste className="size-3.5" /> <ClipboardPaste />
Paste back </TooltipIconButton>
</button>
)} )}
</ActionBarPrimitive.Root> </ActionBarPrimitive.Root>
); );