Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
1ea65c0b
Unverified
Commit
1ea65c0b
authored
Apr 02, 2023
by
boojack
Committed by
GitHub
Apr 02, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update logo (#1442)
* chore: update logo * chore: update
parent
c7a57191
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
91 additions
and
89 deletions
+91
-89
README.md
README.md
+10
-8
index.html
web/index.html
+1
-1
logo.png
web/public/logo.png
+0
-0
logo.webp
web/public/logo.webp
+0
-0
manifest.json
web/public/manifest.json
+2
-2
App.tsx
web/src/App.tsx
+1
-1
AboutSiteDialog.tsx
web/src/components/AboutSiteDialog.tsx
+2
-2
MemoEditor.tsx
web/src/components/MemoEditor.tsx
+1
-1
ShareMemoDialog.tsx
web/src/components/ShareMemoDialog.tsx
+1
-1
UpdateCustomizedProfileDialog.tsx
web/src/components/UpdateCustomizedProfileDialog.tsx
+1
-1
UserAvatar.tsx
web/src/components/UserAvatar.tsx
+2
-2
Auth.tsx
web/src/pages/Auth.tsx
+1
-1
ResourcesDashboard.tsx
web/src/pages/ResourcesDashboard.tsx
+66
-66
global.ts
web/src/store/module/global.ts
+2
-2
global.ts
web/src/store/reducer/global.ts
+1
-1
No files found.
README.md
View file @
1ea65c0b
<p
align=
"center"
><a
href=
"https://usememos.com"
><img
height=
"64px"
src=
"https://usememos.com/logo-full.png"
alt=
"✍️ memos"
/></a></p>
# memos
<p
align=
"center"
>
<img
height=
"72px"
src=
"https://usememos.com/logo.webp"
alt=
"✍️ memos"
align=
"right"
/>
A lightweight, self-hosted memo hub. Open Source and Free forever.
<a
href=
"https://demo.usememos.com/"
>
Live Demo
</a>
•
Discuss in
<a
href=
"https://t.me/+-_tNF1k70UU4ZTc9"
>
Telegram
</a>
/
<a
href=
"https://discord.gg/tfPJa4UmAv"
>
Discord
</a>
<p>
<a
href=
"https://github.com/usememos/memos/stargazers"
><img
alt=
"GitHub stars"
src=
"https://img.shields.io/github/stars/usememos/memos"
/></a>
<a
href=
"https://github.com/usememos/memos/stargazers"
><img
alt=
"GitHub stars"
src=
"https://img.shields.io/github/stars/usememos/memos"
/></a>
<a
href=
"https://hub.docker.com/r/neosmemo/memos"
><img
alt=
"Docker pull"
src=
"https://img.shields.io/docker/pulls/neosmemo/memos.svg"
/></a>
<a
href=
"https://hub.docker.com/r/neosmemo/memos"
><img
alt=
"Docker pull"
src=
"https://img.shields.io/docker/pulls/neosmemo/memos.svg"
/></a>
<a
href=
"https://discord.gg/tfPJa4UmAv"
><img
alt=
"Discord"
src=
"https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5"
/></a>
<a
href=
"https://discord.gg/tfPJa4UmAv"
><img
alt=
"Discord"
src=
"https://img.shields.io/badge/discord-chat-5865f2?logo=discord&logoColor=f5f5f5"
/></a>
</p>
</p>
<p
align=
"center"
>
<a
href=
"https://demo.usememos.com/"
>
Live Demo
</a>
•
Discuss in
<a
href=
"https://t.me/+-_tNF1k70UU4ZTc9"
>
Telegram
</a>
/
<a
href=
"https://discord.gg/tfPJa4UmAv"
>
Discord
</a>
</p>


## Key points
## Key points
...
@@ -39,7 +41,7 @@ Contributions are what make the open-source community such an amazing place to l
...
@@ -39,7 +41,7 @@ Contributions are what make the open-source community such an amazing place to l
<img
src=
"https://contrib.rocks/image?repo=usememos/memos"
/>
<img
src=
"https://contrib.rocks/image?repo=usememos/memos"
/>
</a>
</a>
Here are some products made by our community:
---
-
[
Moe Memos
](
https://memos.moe/
)
- Third party client for iOS and Android
-
[
Moe Memos
](
https://memos.moe/
)
- Third party client for iOS and Android
-
[
lmm214/memos-bber
](
https://github.com/lmm214/memos-bber
)
- Chrome extension
-
[
lmm214/memos-bber
](
https://github.com/lmm214/memos-bber
)
- Chrome extension
...
...
web/index.html
View file @
1ea65c0b
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<html
lang=
"en"
>
<html
lang=
"en"
>
<head>
<head>
<meta
charset=
"UTF-8"
/>
<meta
charset=
"UTF-8"
/>
<link
rel=
"icon"
href=
"/logo.
png
"
type=
"image/*"
/>
<link
rel=
"icon"
href=
"/logo.
webp
"
type=
"image/*"
/>
<meta
name=
"theme-color"
media=
"(prefers-color-scheme: light)"
content=
"#f4f4f5"
/>
<meta
name=
"theme-color"
media=
"(prefers-color-scheme: light)"
content=
"#f4f4f5"
/>
<meta
name=
"theme-color"
media=
"(prefers-color-scheme: dark)"
content=
"#27272a"
/>
<meta
name=
"theme-color"
media=
"(prefers-color-scheme: dark)"
content=
"#27272a"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, user-scalable=no"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, user-scalable=no"
/>
...
...
web/public/logo.png
deleted
100644 → 0
View file @
c7a57191
109 KB
web/public/logo.webp
0 → 100644
View file @
1ea65c0b
File added
web/public/manifest.json
View file @
1ea65c0b
...
@@ -4,8 +4,8 @@
...
@@ -4,8 +4,8 @@
"description"
:
"usememos/memos"
,
"description"
:
"usememos/memos"
,
"icons"
:
[
"icons"
:
[
{
{
"src"
:
"/logo.
png
"
,
"src"
:
"/logo.
webp
"
,
"type"
:
"image/
png
"
,
"type"
:
"image/
webp
"
,
"sizes"
:
"520x520"
"sizes"
:
"520x520"
}
}
],
],
...
...
web/src/App.tsx
View file @
1ea65c0b
...
@@ -53,7 +53,7 @@ const App = () => {
...
@@ -53,7 +53,7 @@ const App = () => {
// dynamic update metadata with customized profile.
// dynamic update metadata with customized profile.
document
.
title
=
systemStatus
.
customizedProfile
.
name
;
document
.
title
=
systemStatus
.
customizedProfile
.
name
;
const
link
=
document
.
querySelector
(
"link[rel~='icon']"
)
as
HTMLLinkElement
;
const
link
=
document
.
querySelector
(
"link[rel~='icon']"
)
as
HTMLLinkElement
;
link
.
href
=
systemStatus
.
customizedProfile
.
logoUrl
||
"/logo.
png
"
;
link
.
href
=
systemStatus
.
customizedProfile
.
logoUrl
||
"/logo.
webp
"
;
},
[
systemStatus
]);
},
[
systemStatus
]);
useEffect
(()
=>
{
useEffect
(()
=>
{
...
...
web/src/components/AboutSiteDialog.tsx
View file @
1ea65c0b
...
@@ -31,8 +31,8 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
...
@@ -31,8 +31,8 @@ const AboutSiteDialog: React.FC<Props> = ({ destroy }: Props) => {
<
div
className=
"mt-4 w-full flex flex-row text-sm justify-start items-center"
>
<
div
className=
"mt-4 w-full flex flex-row text-sm justify-start items-center"
>
<
div
className=
"flex flex-row justify-start items-center mr-2"
>
<
div
className=
"flex flex-row justify-start items-center mr-2"
>
Powered by
Powered by
<
a
href=
"https://usememos.com"
target=
"_blank"
className=
"flex flex-row justify-start items-center m
r
-1 hover:underline"
>
<
a
href=
"https://usememos.com"
target=
"_blank"
className=
"flex flex-row justify-start items-center m
x
-1 hover:underline"
>
<
img
className=
"w-6 h-auto
"
src=
"/logo.png
"
alt=
""
/>
<
img
className=
"w-6 h-auto
rounded-full mr-1"
src=
"/logo.webp
"
alt=
""
/>
memos
memos
</
a
>
</
a
>
<
span
>
v
{
profile
.
version
}
</
span
>
<
span
>
v
{
profile
.
version
}
</
span
>
...
...
web/src/components/MemoEditor.tsx
View file @
1ea65c0b
...
@@ -474,7 +474,7 @@ const MemoEditor = () => {
...
@@ -474,7 +474,7 @@ const MemoEditor = () => {
disabled=
{
!
(
allowSave
||
editorState
.
resourceList
.
length
>
0
)
||
state
.
isUploadingResource
||
state
.
isRequesting
}
disabled=
{
!
(
allowSave
||
editorState
.
resourceList
.
length
>
0
)
||
state
.
isUploadingResource
||
state
.
isRequesting
}
onClick=
{
handleSaveBtnClick
}
onClick=
{
handleSaveBtnClick
}
>
>
<
img
className=
"w-5 -ml-0.5 mr-0.5 h-auto"
src=
"/logo.
png
"
/>
<
img
className=
"w-5 -ml-0.5 mr-0.5 h-auto"
src=
"/logo.
webp
"
/>
{
t
(
"editor.save"
)
}
{
t
(
"editor.save"
)
}
</
button
>
</
button
>
</
div
>
</
div
>
...
...
web/src/components/ShareMemoDialog.tsx
View file @
1ea65c0b
...
@@ -131,7 +131,7 @@ const ShareMemoDialog: React.FC<Props> = (props: Props) => {
...
@@ -131,7 +131,7 @@ const ShareMemoDialog: React.FC<Props> = (props: Props) => {
</
div
>
</
div
>
<
div
className=
"watermark-container"
>
<
div
className=
"watermark-container"
>
<
div
className=
"logo-container"
>
<
div
className=
"logo-container"
>
<
img
className=
"logo-img"
src=
{
`${systemStatus.customizedProfile.logoUrl || "/logo.
png
"}`
}
alt=
""
/>
<
img
className=
"logo-img"
src=
{
`${systemStatus.customizedProfile.logoUrl || "/logo.
webp
"}`
}
alt=
""
/>
</
div
>
</
div
>
<
div
className=
"userinfo-container"
>
<
div
className=
"userinfo-container"
>
<
span
className=
"name-text"
>
{
user
.
nickname
||
user
.
username
}
</
span
>
<
span
className=
"name-text"
>
{
user
.
nickname
||
user
.
username
}
</
span
>
...
...
web/src/components/UpdateCustomizedProfileDialog.tsx
View file @
1ea65c0b
...
@@ -67,7 +67,7 @@ const UpdateCustomizedProfileDialog: React.FC<Props> = ({ destroy }: Props) => {
...
@@ -67,7 +67,7 @@ const UpdateCustomizedProfileDialog: React.FC<Props> = ({ destroy }: Props) => {
const
handleRestoreButtonClick
=
()
=>
{
const
handleRestoreButtonClick
=
()
=>
{
setState
({
setState
({
name
:
"memos"
,
name
:
"memos"
,
logoUrl
:
"/logo.
png
"
,
logoUrl
:
"/logo.
webp
"
,
description
:
""
,
description
:
""
,
locale
:
"en"
,
locale
:
"en"
,
appearance
:
"system"
,
appearance
:
"system"
,
...
...
web/src/components/UserAvatar.tsx
View file @
1ea65c0b
...
@@ -6,8 +6,8 @@ interface Props {
...
@@ -6,8 +6,8 @@ interface Props {
const
UserAvatar
=
(
props
:
Props
)
=>
{
const
UserAvatar
=
(
props
:
Props
)
=>
{
const
{
avatarUrl
,
className
}
=
props
;
const
{
avatarUrl
,
className
}
=
props
;
return
(
return
(
<
div
className=
{
`${className ?? ""} w-8 h-8 overflow-clip
bg-gray-100 dark:bg-zinc-800
`
}
>
<
div
className=
{
`${className ?? ""} w-8 h-8 overflow-clip`
}
>
<
img
className=
"w-full h-auto rounded-full min-w-full min-h-full object-cover"
src=
{
avatarUrl
||
"/logo.
png
"
}
alt=
""
/>
<
img
className=
"w-full h-auto rounded-full min-w-full min-h-full object-cover"
src=
{
avatarUrl
||
"/logo.
webp
"
}
alt=
""
/>
</
div
>
</
div
>
);
);
};
};
...
...
web/src/pages/Auth.tsx
View file @
1ea65c0b
...
@@ -113,7 +113,7 @@ const Auth = () => {
...
@@ -113,7 +113,7 @@ const Auth = () => {
<
div
className=
"auth-form-wrapper"
>
<
div
className=
"auth-form-wrapper"
>
<
div
className=
"page-header-container"
>
<
div
className=
"page-header-container"
>
<
div
className=
"title-container"
>
<
div
className=
"title-container"
>
<
img
className=
"
logo-img
"
src=
{
systemStatus
.
customizedProfile
.
logoUrl
}
alt=
""
/>
<
img
className=
"
h-12 w-auto rounded-lg mr-1
"
src=
{
systemStatus
.
customizedProfile
.
logoUrl
}
alt=
""
/>
<
p
className=
"logo-text"
>
{
systemStatus
.
customizedProfile
.
name
}
</
p
>
<
p
className=
"logo-text"
>
{
systemStatus
.
customizedProfile
.
name
}
</
p
>
</
div
>
</
div
>
<
p
className=
"slogan-text"
>
{
systemStatus
.
customizedProfile
.
description
||
t
(
"slogan"
)
}
</
p
>
<
p
className=
"slogan-text"
>
{
systemStatus
.
customizedProfile
.
description
||
t
(
"slogan"
)
}
</
p
>
...
...
web/src/pages/ResourcesDashboard.tsx
View file @
1ea65c0b
...
@@ -3,6 +3,7 @@ import copy from "copy-to-clipboard";
...
@@ -3,6 +3,7 @@ import copy from "copy-to-clipboard";
import
{
useEffect
,
useMemo
,
useState
}
from
"react"
;
import
{
useEffect
,
useMemo
,
useState
}
from
"react"
;
import
{
toast
}
from
"react-hot-toast"
;
import
{
toast
}
from
"react-hot-toast"
;
import
{
useTranslation
}
from
"react-i18next"
;
import
{
useTranslation
}
from
"react-i18next"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
{
useResourceStore
}
from
"@/store/module"
;
import
{
useResourceStore
}
from
"@/store/module"
;
import
{
getResourceUrl
}
from
"@/utils/resource"
;
import
{
getResourceUrl
}
from
"@/utils/resource"
;
...
@@ -16,7 +17,6 @@ import { showCommonDialog } from "@/components/Dialog/CommonDialog";
...
@@ -16,7 +17,6 @@ import { showCommonDialog } from "@/components/Dialog/CommonDialog";
import
showChangeResourceFilenameDialog
from
"@/components/ChangeResourceFilenameDialog"
;
import
showChangeResourceFilenameDialog
from
"@/components/ChangeResourceFilenameDialog"
;
import
showPreviewImageDialog
from
"@/components/PreviewImageDialog"
;
import
showPreviewImageDialog
from
"@/components/PreviewImageDialog"
;
import
showCreateResourceDialog
from
"@/components/CreateResourceDialog"
;
import
showCreateResourceDialog
from
"@/components/CreateResourceDialog"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
const
ResourcesDashboard
=
()
=>
{
const
ResourcesDashboard
=
()
=>
{
const
{
t
}
=
useTranslation
();
const
{
t
}
=
useTranslation
();
...
@@ -52,53 +52,6 @@ const ResourcesDashboard = () => {
...
@@ -52,53 +52,6 @@ const ResourcesDashboard = () => {
setSelectedList
(
selectedList
.
filter
((
resId
)
=>
resId
!==
resourceId
));
setSelectedList
(
selectedList
.
filter
((
resId
)
=>
resId
!==
resourceId
));
};
};
const
handleDeleteUnusedResourcesBtnClick
=
async
()
=>
{
let
warningText
=
t
(
"resources.warning-text-unused"
);
await
loadAllResources
((
allResources
:
Resource
[])
=>
{
const
unusedResources
=
allResources
.
filter
((
resource
)
=>
{
if
(
resource
.
linkedMemoAmount
===
0
)
{
warningText
=
warningText
+
`\n-
${
resource
.
filename
}
`
;
return
true
;
}
return
false
;
});
if
(
unusedResources
.
length
===
0
)
{
toast
.
success
(
t
(
"resources.no-unused-resources"
));
return
;
}
showCommonDialog
({
title
:
t
(
"resources.delete-resource"
),
content
:
warningText
,
style
:
"warning"
,
dialogName
:
"delete-unused-resources"
,
onConfirm
:
async
()
=>
{
for
(
const
resource
of
unusedResources
)
{
await
resourceStore
.
deleteResourceById
(
resource
.
id
);
}
},
});
});
};
const
handleDeleteSelectedBtnClick
=
()
=>
{
if
(
selectedList
.
length
==
0
)
{
toast
.
error
(
t
(
"resources.no-files-selected"
));
}
else
{
const
warningText
=
t
(
"resources.warning-text"
);
showCommonDialog
({
title
:
t
(
"resources.delete-resource"
),
content
:
warningText
,
style
:
"warning"
,
dialogName
:
"delete-resource-dialog"
,
onConfirm
:
async
()
=>
{
selectedList
.
map
(
async
(
resourceId
:
ResourceId
)
=>
{
await
resourceStore
.
deleteResourceById
(
resourceId
);
});
},
});
}
};
const
handleStyleChangeBtnClick
=
(
listStyle
:
"GRID"
|
"TABLE"
)
=>
{
const
handleStyleChangeBtnClick
=
(
listStyle
:
"GRID"
|
"TABLE"
)
=>
{
setListStyle
(
listStyle
);
setListStyle
(
listStyle
);
setSelectedList
([]);
setSelectedList
([]);
...
@@ -125,6 +78,53 @@ const ResourcesDashboard = () => {
...
@@ -125,6 +78,53 @@ const ResourcesDashboard = () => {
});
});
};
};
const
handleDeleteUnusedResourcesBtnClick
=
async
()
=>
{
let
warningText
=
t
(
"resources.warning-text-unused"
);
const
allResources
=
await
fetchAllResources
();
const
unusedResources
=
allResources
.
filter
((
resource
)
=>
{
if
(
resource
.
linkedMemoAmount
===
0
)
{
warningText
=
warningText
+
`\n-
${
resource
.
filename
}
`
;
return
true
;
}
return
false
;
});
if
(
unusedResources
.
length
===
0
)
{
toast
.
success
(
t
(
"resources.no-unused-resources"
));
return
;
}
showCommonDialog
({
title
:
t
(
"resources.delete-resource"
),
content
:
warningText
,
style
:
"warning"
,
dialogName
:
"delete-unused-resources"
,
onConfirm
:
async
()
=>
{
for
(
const
resource
of
unusedResources
)
{
await
resourceStore
.
deleteResourceById
(
resource
.
id
);
}
},
});
};
const
handleDeleteSelectedBtnClick
=
()
=>
{
if
(
selectedList
.
length
==
0
)
{
toast
.
error
(
t
(
"resources.no-files-selected"
));
}
else
{
const
warningText
=
t
(
"resources.warning-text"
);
showCommonDialog
({
title
:
t
(
"resources.delete-resource"
),
content
:
warningText
,
style
:
"warning"
,
dialogName
:
"delete-resource-dialog"
,
onConfirm
:
async
()
=>
{
selectedList
.
map
(
async
(
resourceId
:
ResourceId
)
=>
{
await
resourceStore
.
deleteResourceById
(
resourceId
);
});
},
});
}
};
const
handlePreviewBtnClick
=
(
resource
:
Resource
)
=>
{
const
handlePreviewBtnClick
=
(
resource
:
Resource
)
=>
{
const
resourceUrl
=
getResourceUrl
(
resource
);
const
resourceUrl
=
getResourceUrl
(
resource
);
if
(
resource
.
type
.
startsWith
(
"image"
))
{
if
(
resource
.
type
.
startsWith
(
"image"
))
{
...
@@ -157,30 +157,30 @@ const ResourcesDashboard = () => {
...
@@ -157,30 +157,30 @@ const ResourcesDashboard = () => {
}
}
};
};
const
loadAllResources
=
async
(
resolve
:
(
allResources
:
Resource
[])
=>
void
)
=>
{
const
fetchAllResources
=
async
()
=>
{
if
(
!
isComplete
)
{
if
(
isComplete
)
{
loadingState
.
setLoading
();
return
resources
;
try
{
}
const
allResources
=
await
resourceStore
.
fetchResourceList
();
loadingState
.
setFinish
();
loadingState
.
setLoading
();
setIsComplete
(
true
);
try
{
resolve
(
allResources
);
const
allResources
=
await
resourceStore
.
fetchResourceList
();
}
catch
(
error
:
any
)
{
loadingState
.
setFinish
();
console
.
error
(
error
);
setIsComplete
(
true
);
toast
.
error
(
error
.
response
.
data
.
message
);
return
allResources
;
}
}
catch
(
error
:
any
)
{
}
else
{
console
.
error
(
error
);
resolve
(
resources
);
toast
.
error
(
error
.
response
.
data
.
message
);
return
resources
;
}
}
};
};
const
handleSearchResourceInputChange
=
async
(
query
:
string
)
=>
{
const
handleSearchResourceInputChange
=
async
(
query
:
string
)
=>
{
// to prevent first tiger when page is loaded
// to prevent first tiger when page is loaded
if
(
query
===
queryText
)
return
;
if
(
query
===
queryText
)
return
;
await
loadAllResources
(()
=>
{
await
fetchAllResources
();
setQueryText
(
query
);
setQueryText
(
query
);
setSelectedList
([]);
setSelectedList
([]);
});
};
};
const
resourceList
=
useMemo
(
const
resourceList
=
useMemo
(
...
...
web/src/store/module/global.ts
View file @
1ea65c0b
...
@@ -16,7 +16,7 @@ export const initialGlobalState = async () => {
...
@@ -16,7 +16,7 @@ export const initialGlobalState = async () => {
additionalScript
:
""
,
additionalScript
:
""
,
customizedProfile
:
{
customizedProfile
:
{
name
:
"memos"
,
name
:
"memos"
,
logoUrl
:
"/logo.
png
"
,
logoUrl
:
"/logo.
webp
"
,
description
:
""
,
description
:
""
,
locale
:
"en"
,
locale
:
"en"
,
appearance
:
"system"
,
appearance
:
"system"
,
...
@@ -41,7 +41,7 @@ export const initialGlobalState = async () => {
...
@@ -41,7 +41,7 @@ export const initialGlobalState = async () => {
...
data
,
...
data
,
customizedProfile
:
{
customizedProfile
:
{
name
:
customizedProfile
.
name
||
"memos"
,
name
:
customizedProfile
.
name
||
"memos"
,
logoUrl
:
customizedProfile
.
logoUrl
||
"/logo.
png
"
,
logoUrl
:
customizedProfile
.
logoUrl
||
"/logo.
webp
"
,
description
:
customizedProfile
.
description
,
description
:
customizedProfile
.
description
,
locale
:
customizedProfile
.
locale
||
"en"
,
locale
:
customizedProfile
.
locale
||
"en"
,
appearance
:
customizedProfile
.
appearance
||
"system"
,
appearance
:
customizedProfile
.
appearance
||
"system"
,
...
...
web/src/store/reducer/global.ts
View file @
1ea65c0b
...
@@ -24,7 +24,7 @@ const globalSlice = createSlice({
...
@@ -24,7 +24,7 @@ const globalSlice = createSlice({
additionalScript
:
""
,
additionalScript
:
""
,
customizedProfile
:
{
customizedProfile
:
{
name
:
"memos"
,
name
:
"memos"
,
logoUrl
:
"/logo.
png
"
,
logoUrl
:
"/logo.
webp
"
,
description
:
""
,
description
:
""
,
locale
:
"en"
,
locale
:
"en"
,
appearance
:
"system"
,
appearance
:
"system"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment