Skip to content

Commit 6a6b032

Browse files
committed
fixed overflow on chat settings page
1 parent 88f0b45 commit 6a6b032

13 files changed

+49
-55
lines changed

.prettierrc

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"singleQuote": false,
3+
"semi": true,
4+
"printWidth": 120,
5+
"trailingComma": "none",
6+
"plugins": ["prettier-plugin-tailwindcss", "prettier-plugin-classnames", "prettier-plugin-organize-imports"],
7+
"organizeImportsSkipDestructiveCodeActions": true
8+
}

.prettierrc.yaml

-5
This file was deleted.

src/renderer/src/app/app.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ export default function App() {
116116
}}
117117
>
118118
<div
119-
className="flex h-screen bg-background text-sm text-neutral-100 antialiased lg:text-base"
119+
className="flex h-screen overflow-hidden bg-background text-sm text-tx-primary antialiased lg:text-base"
120120
onDrop={handleDrop}
121121
onDragOver={(e) => {
122122
e.preventDefault();

src/renderer/src/app/settings/settings.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useState } from "react";
77
export default function SettingsPage() {
88
const [page, setPage] = useState<string>("chat");
99
return (
10-
<div className="flex h-full w-full rounded-xl">
10+
<div className="flex h-full w-full rounded-xl ">
1111
{/*Sidebar*/}
1212
<div className="flex h-full w-56 shrink-0 flex-col space-y-2 overflow-hidden rounded-2xl bg-nav-primary px-3 py-8">
1313
<button
@@ -46,7 +46,7 @@ export default function SettingsPage() {
4646

4747
{/*Settings Content*/}
4848

49-
<div className="grow overflow-hidden">
49+
<div className="grow overflow-y-clip">
5050
{page === "chat" && <SettingsChat />}
5151
{page === "persona" && <SettingsPersona />}
5252
{page === "key" && <SettingsKeys />}

src/renderer/src/app/settings/settings_chat.tsx

+11-14
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Button } from "@/components/ui/button";
12
import { Checkbox } from "@/components/ui/checkbox";
23
import Combobox from "@/components/ui/combobox";
34
import { Input } from "@/components/ui/input";
@@ -38,8 +39,8 @@ export default function SettingsChat() {
3839
formState: { errors }
3940
} = methods;
4041

41-
const providerNameAndValue = getProvidersNameAndValue();
4242
const [models, setModels] = useState<string[]>([]);
43+
const providerNameAndValue = getProvidersNameAndValue();
4344
const selectedProvider = watch("provider");
4445

4546
useEffect(() => {
@@ -70,11 +71,12 @@ export default function SettingsChat() {
7071
if (!selectedProvider) return;
7172
// Clear current model list
7273
setModels([]);
73-
console.log("selected provider:", selectedProvider);
7474
// Fetch & set new model list based on the selected provider
7575
const res = await getProvider(selectedProvider).getModels();
7676
if (res.kind === "err") {
77-
toast(`An error occured while fetching models list.`);
77+
toast.error(
78+
<span className="whitespace-pre-wrap">{`An error occured while fetching the model list for ${selectedProvider}.\nDid you enter an API key?`}</span>
79+
);
7880
return;
7981
}
8082
setModels(res.value);
@@ -92,12 +94,12 @@ export default function SettingsChat() {
9294
};
9395

9496
return (
95-
<div className="flex h-full w-full flex-col items-center justify-center scroll-secondary space-y-5 overflow-hidden">
97+
<div className="flex h-full w-full flex-col items-center justify-center space-y-5">
9698
<h1 className="text-2xl text-tx-primary font-bold tracking-wide">Chat Settings</h1>
9799
<FormProvider {...methods}>
98-
<form className="overflow-hidden">
100+
<form className="flex flex-col items-center space-y-5">
99101
{/* Card Wrapper*/}
100-
<div className=" h-[30rem] w-[32rem] rounded-2xl border-y border-l border-line bg-container-primary py-3">
102+
<div className="h-[32rem] w-[32rem] rounded-2xl border-y border-l border-line bg-container-primary py-3">
101103
<div className="scroll-secondary flex h-full w-full flex-col space-y-8 overflow-auto px-8 py-6">
102104
{/* Provider & Model Section */}
103105
<div className="space-y-3">
@@ -253,15 +255,10 @@ export default function SettingsChat() {
253255
</div>
254256
</div>
255257
</div>
258+
<Button className="" onClick={handleSubmit(onSubmit)}>
259+
Save
260+
</Button>
256261
</form>
257-
258-
<button
259-
className="flex items-center space-x-2 rounded-xl border border-line bg-action-primary hover:brightness-90 px-4 py-2 font-medium
260-
text-tx-primary"
261-
onClick={handleSubmit(onSubmit)}
262-
>
263-
Save
264-
</button>
265262
</FormProvider>
266263
</div>
267264
);

src/renderer/src/app/settings/settings_deleted.tsx

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DialogConfig, useApp } from "@/components/AppContext";
22
import CardDeleted from "@/components/CardDeleted";
3+
import { Button } from "@/components/ui/button";
34
import { Input } from "@/components/ui/input";
45
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
56
import { queries } from "@/lib/queries";
@@ -213,19 +214,13 @@ export default function SettingsRecentlyDeleted() {
213214
</div>
214215
</div>
215216
<div className="flex flex-row flex-grow space-x-4 justify-end pr-8">
216-
<button
217-
className="flex items-center space-x-2 rounded-xl bg-transparent px-4 py-2 transition-colors duration-200 hover:brightness-90"
218-
onClick={handleRestoreSelected}
219-
>
217+
<Button variant="secondary" className="flex items-center space-x-2" onClick={handleRestoreSelected}>
220218
<span className="font-medium text-tx-primary text-sm">Restore</span>
221-
</button>
222-
<button
223-
className="flex items-center space-x-2 rounded-xl bg-action-primary px-4 py-2 transition ease-out duration-200 hover:brightness-90"
224-
onClick={handleDeleteSelected}
225-
>
219+
</Button>
220+
<Button className="flex items-center space-x-2" onClick={handleDeleteSelected}>
226221
<TrashIcon className="size-5 text-tx-primary" />
227222
<span className="font-medium text-tx-primary text-sm">Delete</span>
228-
</button>
223+
</Button>
229224
</div>
230225
</div>
231226

src/renderer/src/app/settings/settings_keys.tsx

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Button } from "@/components/ui/button";
12
import { Input } from "@/components/ui/input";
23
import { Label } from "@/components/ui/label";
34
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
@@ -89,13 +90,7 @@ export default function SettingsKeys() {
8990
</div>
9091
</div>
9192

92-
<button
93-
className="flex items-center space-x-2 rounded-md border border-line transition bg-action-primary hover:rbrightness-90 px-4 py-2
94-
font-medium text-tx-primary"
95-
onClick={handleSubmit}
96-
>
97-
Save
98-
</button>
93+
<Button onClick={handleSubmit}>Save</Button>
9994
</div>
10095
);
10196
}

src/renderer/src/app/settings/settings_persona.tsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
} from "@/components/ui/dropdown-menu";
1919

2020
import { useApp } from "@/components/AppContext";
21+
import { Button } from "@/components/ui/button";
2122
import { queries } from "@/lib/queries";
2223
import { PersonaBundle, PersonaFormData } from "@shared/types";
2324
import { toast } from "sonner";
@@ -212,13 +213,10 @@ export default function SettingsPersona() {
212213
})}
213214
</div>
214215
</div>
215-
<button
216-
className="flex items-center space-x-2 rounded-md bg-action-primary px-4 py-2 transition hover:brightness-90"
217-
onClick={handleNew}
218-
>
216+
<Button className="flex items-center space-x-2" onClick={handleNew}>
219217
<UserPlusIcon className="size-5 text-tx-primary" />
220218
<span className="font-medium text-tx-primary">New</span>
221-
</button>
219+
</Button>
222220
</div>
223221
);
224222
}

src/renderer/src/components/ChatBar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export default function ChatBar({
4040
return (
4141
<div className={className}>
4242
<div className="flex h-fit w-fit items-center ">
43-
<Typing className="mb-1 ml-4 mt-1" name="Saku" typing={isTyping} />
43+
<Typing className="mb-1 ml-4 mt-1" name={cardData.character.name} typing={isTyping} />
4444
</div>
4545
<div className="flex min-h-fit w-full shrink-0 space-x-2 overflow-auto rounded-3xl bg-input-primary p-4">
4646
<button className="flex size-7 items-center justify-center">

src/renderer/src/components/SideBar.tsx

+10-4
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function SideBar({ page, setPage }: SideBarProps) {
6565
<div className="flex flex-col">
6666
<DropdownMenu>
6767
<DropdownMenuTrigger className="outline-none">
68-
<Button size="icon" className={"m-2 size-16 rounded-xl hover:bg-accent"}>
68+
<Button variant="ghost" size="icon" className={"m-2 size-16 rounded-xl"}>
6969
<PlusCircleIcon className="text-tx-secondary size-8" />
7070
</Button>
7171
</DropdownMenuTrigger>
@@ -88,13 +88,17 @@ export default function SideBar({ page, setPage }: SideBarProps) {
8888
</DropdownMenuItem>
8989
</DropdownMenuContent>
9090
</DropdownMenu>
91-
<Button className="m-2 size-16 rounded-xl hover:bg-accent " onClick={() => setPage("chats")}>
91+
<Button variant="ghost" className="m-2 size-16 rounded-xl" onClick={() => setPage("chats")}>
9292
<ChatBubbleLeftRightIcon className="text-tx-secondary size-8" />
9393
</Button>
94-
<Button className="m-2 size-16 rounded-xl hover:bg-accent" onClick={() => setPage("collections")}>
94+
<Button
95+
variant="ghost"
96+
className="m-2 size-16 rounded-xl hover:bg-accent"
97+
onClick={() => setPage("collections")}
98+
>
9599
<UserGroupIcon className="text-tx-secondary size-8" />
96100
</Button>
97-
<Button className="m-2 size-16 rounded-xl hover:bg-accent" onClick={() => setPage("settings")}>
101+
<Button variant="ghost" className="m-2 size-16 rounded-xl hover:bg-accent" onClick={() => setPage("settings")}>
98102
<Cog8ToothIcon className="text-tx-secondary size-8" />
99103
</Button>
100104
</div>
@@ -105,6 +109,7 @@ export default function SideBar({ page, setPage }: SideBarProps) {
105109
{/* Bottom Button Group*/}
106110
<div className="flex flex-col space-y-2">
107111
<Button
112+
variant="ghost"
108113
size="icon"
109114
className="mx-2 size-12 rounded-xl"
110115
onClick={() => {
@@ -116,6 +121,7 @@ export default function SideBar({ page, setPage }: SideBarProps) {
116121
</Button>
117122
<Button
118123
size="icon"
124+
variant="ghost"
119125
className="mx-2 size-12 rounded-xl"
120126
onClick={() => {
121127
toast.info("Docs are coming soon™!");

src/renderer/src/components/ui/button.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ const buttonVariants = cva(
88
{
99
variants: {
1010
variant: {
11-
default: "bg-transparent text-tx-secondary hover:brightness-90",
12-
secondary: "bg-action-secondary text-tx-secondary hover:text-tx-primary bg-transparent",
11+
default: "bg-action-primary text-tx-primary hover:brightness-90 text-base",
12+
secondary: "text-tx-secondary hover:text-tx-primary bg-transparent",
1313
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
14-
ghost: "hover:bg-accent hover:text-accent-foreground",
14+
ghost: "hover:bg-accent hover:text-tx-primary bg-transparent text-tx-secondary",
1515
link: "text-tx-primary underline-offset-4 hover:underline"
1616
},
1717
size: {
18-
default: "h-9 px-4 py-2",
18+
default: "h-10 px-4 py-2",
1919
sm: "h-8 rounded-md px-3 text-xs",
2020
lg: "h-10 rounded-md px-8",
2121
icon: "h-9 w-9"

src/renderer/src/lib/provider/together_ai.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ async function getModels(): Promise<Result<string[], Error>> {
4545
Authorization: `Bearer ${key}`
4646
};
4747

48-
const modelsRes = await window.api.xfetch.get(url, headers, { timeout: 2000 });
48+
const modelsRes = await window.api.xfetch.get(url, headers, { timeout: 5000 });
4949
if (modelsRes.kind == "err") {
50-
console.log("Error getting models:", modelsRes.error.message);
5150
return modelsRes;
5251
}
5352

src/renderer/src/styles/global.css

+1
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@
348348
--popover-foreground: var(--tx-primary);
349349
--radius: 0.8rem;
350350
font-weight: 480;
351+
overflow-y : hidden
351352
}
352353

353354
.scroll-primary::-webkit-scrollbar {

0 commit comments

Comments
 (0)