Skip to content

Commit 2c5944d

Browse files
committed
refactor: organize application components into dedicated subdirectories and update localization files.
1 parent a7bf84e commit 2c5944d

9 files changed

Lines changed: 2567 additions & 808 deletions

File tree

src/locales/de.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/en.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/es.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/fr.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/ja.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/pt.po

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

src/locales/zh.po

Lines changed: 687 additions & 801 deletions
Large diffs are not rendered by default.

src/routes/apps/(app)/note-taker/+page.svelte

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,17 @@
2020
import { Separator } from '$lib/components/ui/separator';
2121
import CreateNoteDialog from './components/CreateNoteDialog.svelte';
2222
import EditNoteDialog from './components/EditNoteDialog.svelte';
23-
import { Plus, Trash2, RefreshCw, Pencil, Search, Calendar, StickyNote } from 'lucide-svelte';
23+
import ViewNoteDialog from './components/ViewNoteDialog.svelte';
24+
import {
25+
Plus,
26+
Trash2,
27+
RefreshCw,
28+
Pencil,
29+
Search,
30+
Calendar,
31+
StickyNote,
32+
Eye
33+
} from 'lucide-svelte';
2434
import { toast } from 'svelte-sonner';
2535
import { fly, fade } from 'svelte/transition';
2636
@@ -158,13 +168,19 @@
158168
// Dialogs
159169
let createDialogOpen = $state(false);
160170
let editDialogOpen = $state(false);
171+
let viewDialogOpen = $state(false);
161172
let selectedNote = $state<Note | null>(null);
162173
163174
function openEditDialog(note: Note) {
164175
selectedNote = note;
165176
editDialogOpen = true;
166177
}
167178
179+
function openViewDialog(note: Note) {
180+
selectedNote = note;
181+
viewDialogOpen = true;
182+
}
183+
168184
function getRelativeTime(dateString: string): string {
169185
const date = new Date(dateString);
170186
const now = new Date();
@@ -273,6 +289,14 @@
273289
<div class="flex items-start justify-between gap-2">
274290
<CardTitle class="line-clamp-2 text-xl">{note.title}</CardTitle>
275291
<div class="flex gap-1 opacity-0 transition-opacity group-hover:opacity-100">
292+
<Button
293+
variant="ghost"
294+
size="icon"
295+
class="size-8"
296+
onclick={() => openViewDialog(note)}
297+
>
298+
<Eye class="size-4" />
299+
</Button>
276300
<Button
277301
variant="ghost"
278302
size="icon"
@@ -324,3 +348,9 @@
324348
note={selectedNote}
325349
{currentUser}
326350
/>
351+
352+
<ViewNoteDialog
353+
open={viewDialogOpen}
354+
onOpenChange={(open: boolean) => (viewDialogOpen = open)}
355+
note={selectedNote}
356+
/>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<script lang="ts">
2+
import {
3+
Dialog,
4+
DialogContent,
5+
DialogHeader,
6+
DialogTitle,
7+
DialogFooter,
8+
DialogDescription
9+
} from '$lib/components/ui/dialog';
10+
import { Button } from '$lib/components/ui/button';
11+
import { ScrollArea } from '$lib/components/ui/scroll-area';
12+
import type { Note } from '../states.svelte';
13+
14+
let {
15+
open = false,
16+
onOpenChange: onOpenChangeProp = () => {},
17+
note = null
18+
} = $props<{
19+
open?: boolean;
20+
onOpenChange?: (open: boolean) => void;
21+
note?: Note | null;
22+
}>();
23+
24+
function onOpenChange(val: boolean) {
25+
open = val;
26+
onOpenChangeProp(val);
27+
}
28+
</script>
29+
30+
<Dialog {open} onOpenChange={(v) => onOpenChange(v)}>
31+
<DialogContent class="sm:max-w-[600px]">
32+
<DialogHeader>
33+
<DialogTitle class="text-2xl">{note?.title || 'Note Details'}</DialogTitle>
34+
{#if note?.updatedAt}
35+
<DialogDescription>
36+
Last updated: {new Date(note.updatedAt).toLocaleString()}
37+
</DialogDescription>
38+
{/if}
39+
</DialogHeader>
40+
41+
{#if note}
42+
<div class="py-4">
43+
<ScrollArea class="h-[60vh] rounded-md border p-4">
44+
<div class="text-base leading-relaxed whitespace-pre-wrap">
45+
{note.content}
46+
</div>
47+
</ScrollArea>
48+
</div>
49+
{/if}
50+
51+
<DialogFooter>
52+
<Button variant="outline" onclick={() => onOpenChange(false)}>Close</Button>
53+
</DialogFooter>
54+
</DialogContent>
55+
</Dialog>

0 commit comments

Comments
 (0)