Skip to content

Commit 33955c7

Browse files
authored
Merge pull request #6 from kaishuu0123/feat/change-layout-and-imprv-search-feature
Change layout and improve search feature.
2 parents b24893f + 5b16018 commit 33955c7

File tree

7 files changed

+51
-35
lines changed

7 files changed

+51
-35
lines changed

.devcontainer/devcontainer.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
"features": {
1111
"ghcr.io/devcontainers/features/node:1": {
1212
"version": "20.17.0"
13+
},
14+
"ghcr.io/devcontainers/features/desktop-lite:1": {
15+
"version": "latest",
16+
"noVncVersion": "1.2.0",
17+
"password": "vscode",
18+
"webPort": "6080",
19+
"vncPort": "5901"
1320
}
1421
},
1522
// Use 'forwardPorts' to make a list of ports inside the container available locally.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
1515
"typecheck": "npm run typecheck:node && npm run typecheck:web",
1616
"start": "electron-vite preview",
17-
"dev": "GDK_DPI_SCALE=1.25 electron-vite dev",
17+
"dev": "electron-vite dev -- --disable-gpu",
1818
"build": "npm run typecheck && electron-vite build",
1919
"postinstall": "electron-builder install-app-deps",
2020
"build:unpack": "npm run build && electron-builder --dir",

src/renderer/src/App.tsx

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ import { getTime } from 'date-fns'
4747
import { Trans, useTranslation } from 'react-i18next'
4848
import i18n from './i18n/configs'
4949
import { Drawer, DrawerContent, DrawerTrigger } from './components/ui/drawer'
50-
import LogoImg from './assets/leavepad_logo.svg'
5150

5251
initializeNoteEditor()
5352

@@ -245,7 +244,7 @@ function App(): JSX.Element {
245244
if (currentSearchValue != null && currentSearchValue != '') {
246245
const regex = new RegExp(currentSearchValue)
247246
return notes.filter((note) => {
248-
return regex.test(note.name)
247+
return regex.test(note.name) || regex.test(note.body)
249248
})
250249
}
251250

@@ -275,35 +274,22 @@ function App(): JSX.Element {
275274
>
276275
<div
277276
className={cn(
278-
'flex flex-col h-screen space-y-2',
277+
'flex flex-col h-screen space-y-2 relative',
279278
isSidebarOpen === true ? 'w-3/12 xl:w-2/12' : ''
280279
)}
281280
>
282-
<div className="mt-2">
283-
{isSidebarOpen === true ? (
284-
<Button
285-
variant="ghost"
286-
className="w-full flex items-center justify-start space-x-2 rounded-none"
287-
onClick={onClickSidebarMinimize}
288-
>
289-
<div className="min-w-8 w-8 min-h-8 h-8">
290-
<img src={LogoImg} />
291-
</div>
292-
<div className="grow text-left">Leavepad</div>
293-
<div className="codicon codicon-chevron-left"></div>
294-
</Button>
281+
<Button
282+
className={cn('absolute left-[100%] top-[50%] -ml-3 w-7 h-7 z-10')}
283+
variant="outline"
284+
size="icon"
285+
onClick={onClickSidebarMinimize}
286+
>
287+
{isSidebarOpen ? (
288+
<span className="codicon codicon-chevron-left"></span>
295289
) : (
296-
<Button
297-
variant="ghost"
298-
className="w-full flex items-center justify-start space-x-2 rounded-none"
299-
onClick={onClickSidebarMinimize}
300-
>
301-
<div className="codicon codicon-chevron-right w-full"></div>
302-
</Button>
290+
<span className="codicon codicon-chevron-right"></span>
303291
)}
304-
</div>
305-
306-
<Separator />
292+
</Button>
307293

308294
<div className="px-2">
309295
<Button
@@ -338,7 +324,7 @@ function App(): JSX.Element {
338324
{isSidebarOpen === true ? (
339325
<div className="px-2">
340326
<Input
341-
placeholder={t('searchByNoteName')}
327+
placeholder={t('searchByNoteNameOrNoteBody')}
342328
defaultValue={currentSearchValue}
343329
onChange={(e) => setCurrentSearchValue(e.target.value)}
344330
/>
@@ -365,14 +351,34 @@ function App(): JSX.Element {
365351
</div>
366352
</ScrollArea>
367353
) : (
368-
<Drawer direction="left" open={isDrawerOpen} onOpenChange={setDrawerOpen}>
354+
<Drawer
355+
direction="left"
356+
open={isDrawerOpen}
357+
onOpenChange={setDrawerOpen}
358+
dismissible={false}
359+
>
369360
<DrawerTrigger asChild>
370361
<Button className={cn(isSidebarOpen === false && 'p-2 h-8')}>
371-
<div className="codicon codicon-note"></div>
362+
<div
363+
className="codicon codicon-note"
364+
onClick={() => setDrawerOpen(false)}
365+
></div>
372366
</Button>
373367
</DrawerTrigger>
374368
<DrawerContent className="w-6/12 md:w-4/12 lg:max-2xl:w-3/12 h-full rounded-none py-3">
375369
<div className="flex flex-col h-full space-y-4">
370+
<div className="px-3">
371+
<div className="flex items-center w-full">
372+
<Button
373+
className="w-full items-center justify-start"
374+
onClick={() => setDrawerOpen(false)}
375+
>
376+
<span className="codicon codicon-close"></span>
377+
<span>{t('close')}</span>
378+
</Button>
379+
</div>
380+
</div>
381+
376382
<div className="px-3">
377383
<div className="flex items-center w-full">
378384
<div className="grow">

src/renderer/src/components/note-card.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function NoteCard({ note, onClick, onNoteCardSetName, onDeleteNote }): JSX.Eleme
3434
<div
3535
key={note.id}
3636
className={cn(
37-
'flex flex-col w-full items-start gap-2 border rounded-sm px-3 py-2 text-left text-sm transition-all hover:bg-accent group'
37+
'flex flex-col w-full items-start gap-1 border rounded-sm px-3 py-2 text-left text-sm transition-all hover:bg-accent group'
3838
)}
3939
onClick={() => onClick(note)}
4040
>
@@ -50,6 +50,7 @@ function NoteCard({ note, onClick, onNoteCardSetName, onDeleteNote }): JSX.Eleme
5050
onBlur={(_e) => {
5151
saveNoteCardName(note)
5252
}}
53+
onClick={(e) => e.stopPropagation()}
5354
onKeyDown={(e) => {
5455
if (e.key === 'Enter' && e.nativeEvent.isComposing === false) {
5556
saveNoteCardName(note)

src/renderer/src/components/note-tabs.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ function NoteTabs({ noteTabs, activeTabId, onTabClick, onTabCloseClick }): JSX.E
1818
return (
1919
<ScrollArea ref={ref} type="always" className="w-full h-full">
2020
<Tabs value={activeTabId} className="h-full" onValueChange={onTabChange}>
21-
<TabsList className="w-full gap-2 rounded-none justify-start p-0 pt-1">
21+
<TabsList className="w-full gap-1 rounded-none justify-start px-1 pb-0 pt-1">
2222
{tabs.map((tab) => {
2323
return (
2424
<TabsTrigger
2525
key={tab}
2626
value={tab}
2727
data-tab-id={tab}
28-
className="flex items-center gap-3 h-full rounded-none rounded-t-sm"
28+
className="flex items-center gap-3 h-full rounded-none rounded-t-sm border border-b-0"
2929
asChild
3030
>
3131
<div>

src/renderer/src/i18n/english.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"createNote": "New note",
3-
"searchByNoteName": "Search by note name",
3+
"searchByNoteNameOrNoteBody": "Search by note name or note body",
44
"rename": "Rename",
55
"delete": "Delete",
66
"save": "Save",
@@ -15,6 +15,7 @@
1515
"deleteAlertDialogTitleMessage": "Permanently delete {{noteName}} ?",
1616
"ok": "OK",
1717
"cancel": "Cancel",
18+
"close": "Close",
1819
"contextMenu": {
1920
"close": "Close",
2021
"closeOthers": "Close Others",

src/renderer/src/i18n/japanese.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"rename": "名前を変更",
44
"delete": "削除",
55
"save": "保存",
6-
"searchByNoteName": "ノート名で検索",
6+
"searchByNoteNameOrNoteBody": "ノート名か本文で検索",
77
"globalSettings": "グローバル設定",
88
"createdAt": "作成日時",
99
"updatedAt": "更新日時",
@@ -15,6 +15,7 @@
1515
"deleteAlertDialogTitleMessage": "{{noteName}} を削除しますか?",
1616
"ok": "OK",
1717
"cancel": "キャンセル",
18+
"close": "閉じる",
1819
"contextMenu": {
1920
"close": "閉じる",
2021
"closeOthers": "他のタブをすべて閉じる",

0 commit comments

Comments
 (0)