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
936fe5ac
Commit
936fe5ac
authored
Sep 15, 2023
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update state initial loader
parent
f5802a7d
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
58 additions
and
66 deletions
+58
-66
App.tsx
web/src/App.tsx
+5
-15
Archived.tsx
web/src/pages/Archived.tsx
+0
-8
DailyReview.tsx
web/src/pages/DailyReview.tsx
+0
-6
Home.tsx
web/src/pages/Home.tsx
+1
-16
ResourcesDashboard.tsx
web/src/pages/ResourcesDashboard.tsx
+0
-8
Setting.tsx
web/src/pages/Setting.tsx
+1
-7
index.tsx
web/src/router/index.tsx
+51
-6
No files found.
web/src/App.tsx
View file @
936fe5ac
...
@@ -5,7 +5,8 @@ import { Outlet } from "react-router-dom";
...
@@ -5,7 +5,8 @@ import { Outlet } from "react-router-dom";
import
storage
from
"./helpers/storage"
;
import
storage
from
"./helpers/storage"
;
import
{
getSystemColorScheme
}
from
"./helpers/utils"
;
import
{
getSystemColorScheme
}
from
"./helpers/utils"
;
import
Loading
from
"./pages/Loading"
;
import
Loading
from
"./pages/Loading"
;
import
{
initialGlobalState
,
initialUserState
,
useGlobalStore
}
from
"./store/module"
;
import
store
from
"./store"
;
import
{
useGlobalStore
}
from
"./store/module"
;
import
{
useUserV1Store
}
from
"./store/v1"
;
import
{
useUserV1Store
}
from
"./store/v1"
;
const
App
=
()
=>
{
const
App
=
()
=>
{
...
@@ -18,21 +19,10 @@ const App = () => {
...
@@ -18,21 +19,10 @@ const App = () => {
useEffect
(()
=>
{
useEffect
(()
=>
{
const
initialState
=
async
()
=>
{
const
initialState
=
async
()
=>
{
try
{
const
{
user
}
=
store
.
getState
().
user
;
await
initialGlobalState
();
if
(
user
)
{
}
catch
(
error
)
{
await
userV1Store
.
getOrFetchUserByUsername
(
user
.
username
);
// do nothing
}
}
try
{
const
user
=
await
initialUserState
();
if
(
user
)
{
await
userV1Store
.
getOrFetchUserByUsername
(
user
.
username
);
}
}
catch
(
error
)
{
// do nothing.
}
setLoading
(
false
);
setLoading
(
false
);
};
};
...
...
web/src/pages/Archived.tsx
View file @
936fe5ac
...
@@ -4,7 +4,6 @@ import ArchivedMemo from "@/components/ArchivedMemo";
...
@@ -4,7 +4,6 @@ import ArchivedMemo from "@/components/ArchivedMemo";
import
Empty
from
"@/components/Empty"
;
import
Empty
from
"@/components/Empty"
;
import
MemoFilter
from
"@/components/MemoFilter"
;
import
MemoFilter
from
"@/components/MemoFilter"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
useCurrentUser
from
"@/hooks/useCurrentUser"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
{
useFilterStore
,
useMemoStore
}
from
"@/store/module"
;
import
{
useFilterStore
,
useMemoStore
}
from
"@/store/module"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
...
@@ -12,7 +11,6 @@ import "@/less/archived.less";
...
@@ -12,7 +11,6 @@ import "@/less/archived.less";
const
Archived
=
()
=>
{
const
Archived
=
()
=>
{
const
t
=
useTranslate
();
const
t
=
useTranslate
();
const
user
=
useCurrentUser
();
const
memoStore
=
useMemoStore
();
const
memoStore
=
useMemoStore
();
const
loadingState
=
useLoading
();
const
loadingState
=
useLoading
();
const
[
archivedMemos
,
setArchivedMemos
]
=
useState
<
Memo
[]
>
([]);
const
[
archivedMemos
,
setArchivedMemos
]
=
useState
<
Memo
[]
>
([]);
...
@@ -21,12 +19,6 @@ const Archived = () => {
...
@@ -21,12 +19,6 @@ const Archived = () => {
const
filter
=
filterStore
.
state
;
const
filter
=
filterStore
.
state
;
const
{
text
:
textQuery
}
=
filter
;
const
{
text
:
textQuery
}
=
filter
;
useEffect
(()
=>
{
if
(
!
user
)
{
window
.
location
.
href
=
"/auth"
;
}
},
[]);
useEffect
(()
=>
{
useEffect
(()
=>
{
memoStore
memoStore
.
fetchArchivedMemos
()
.
fetchArchivedMemos
()
...
...
web/src/pages/DailyReview.tsx
View file @
936fe5ac
...
@@ -45,12 +45,6 @@ const DailyReview = () => {
...
@@ -45,12 +45,6 @@ const DailyReview = () => {
})
})
.
sort
((
a
,
b
)
=>
getTimeStampByDate
(
a
.
displayTs
)
-
getTimeStampByDate
(
b
.
displayTs
));
.
sort
((
a
,
b
)
=>
getTimeStampByDate
(
a
.
displayTs
)
-
getTimeStampByDate
(
b
.
displayTs
));
useEffect
(()
=>
{
if
(
!
user
)
{
window
.
location
.
href
=
"/auth"
;
}
},
[]);
useEffect
(()
=>
{
useEffect
(()
=>
{
let
offset
=
0
;
let
offset
=
0
;
const
fetchMoreMemos
=
async
()
=>
{
const
fetchMoreMemos
=
async
()
=>
{
...
...
web/src/pages/Home.tsx
View file @
936fe5ac
import
{
useEffect
}
from
"react"
;
import
HomeSidebar
from
"@/components/HomeSidebar"
;
import
HomeSidebar
from
"@/components/HomeSidebar"
;
import
MemoEditor
from
"@/components/MemoEditor"
;
import
MemoEditor
from
"@/components/MemoEditor"
;
import
MemoFilter
from
"@/components/MemoFilter"
;
import
MemoFilter
from
"@/components/MemoFilter"
;
import
MemoList
from
"@/components/MemoList"
;
import
MemoList
from
"@/components/MemoList"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
useCurrentUser
from
"@/hooks/useCurrentUser"
;
import
{
useUserStore
}
from
"@/store/module"
;
import
{
useGlobalStore
,
useUserStore
}
from
"@/store/module"
;
const
Home
=
()
=>
{
const
Home
=
()
=>
{
const
globalStore
=
useGlobalStore
();
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
const
user
=
useCurrentUser
();
useEffect
(()
=>
{
if
(
!
user
)
{
const
systemStatus
=
globalStore
.
state
.
systemStatus
;
if
(
systemStatus
.
disablePublicMemos
)
{
window
.
location
.
href
=
"/auth"
;
}
else
{
window
.
location
.
href
=
"/explore"
;
}
}
},
[]);
return
(
return
(
<
div
className=
"w-full flex flex-row justify-start items-start"
>
<
div
className=
"w-full flex flex-row justify-start items-start"
>
...
...
web/src/pages/ResourcesDashboard.tsx
View file @
936fe5ac
...
@@ -10,7 +10,6 @@ import ResourceCard from "@/components/ResourceCard";
...
@@ -10,7 +10,6 @@ import ResourceCard from "@/components/ResourceCard";
import
ResourceSearchBar
from
"@/components/ResourceSearchBar"
;
import
ResourceSearchBar
from
"@/components/ResourceSearchBar"
;
import
Dropdown
from
"@/components/kit/Dropdown"
;
import
Dropdown
from
"@/components/kit/Dropdown"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
import
useCurrentUser
from
"@/hooks/useCurrentUser"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
{
useResourceStore
}
from
"@/store/module"
;
import
{
useResourceStore
}
from
"@/store/module"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
...
@@ -18,19 +17,12 @@ import { useTranslate } from "@/utils/i18n";
...
@@ -18,19 +17,12 @@ import { useTranslate } from "@/utils/i18n";
const
ResourcesDashboard
=
()
=>
{
const
ResourcesDashboard
=
()
=>
{
const
t
=
useTranslate
();
const
t
=
useTranslate
();
const
loadingState
=
useLoading
();
const
loadingState
=
useLoading
();
const
user
=
useCurrentUser
();
const
resourceStore
=
useResourceStore
();
const
resourceStore
=
useResourceStore
();
const
resources
=
resourceStore
.
state
.
resources
;
const
resources
=
resourceStore
.
state
.
resources
;
const
[
queryText
,
setQueryText
]
=
useState
<
string
>
(
""
);
const
[
queryText
,
setQueryText
]
=
useState
<
string
>
(
""
);
const
[
dragActive
,
setDragActive
]
=
useState
(
false
);
const
[
dragActive
,
setDragActive
]
=
useState
(
false
);
const
[
isComplete
,
setIsComplete
]
=
useState
<
boolean
>
(
false
);
const
[
isComplete
,
setIsComplete
]
=
useState
<
boolean
>
(
false
);
useEffect
(()
=>
{
if
(
!
user
)
{
window
.
location
.
href
=
"/auth"
;
}
},
[]);
useEffect
(()
=>
{
useEffect
(()
=>
{
resourceStore
resourceStore
.
fetchResourceListWithLimit
(
DEFAULT_MEMO_LIMIT
)
.
fetchResourceListWithLimit
(
DEFAULT_MEMO_LIMIT
)
...
...
web/src/pages/Setting.tsx
View file @
936fe5ac
import
{
Option
,
Select
}
from
"@mui/joy"
;
import
{
Option
,
Select
}
from
"@mui/joy"
;
import
{
isEqual
}
from
"lodash-es"
;
import
{
isEqual
}
from
"lodash-es"
;
import
{
use
Effect
,
use
State
}
from
"react"
;
import
{
useState
}
from
"react"
;
import
BetaBadge
from
"@/components/BetaBadge"
;
import
BetaBadge
from
"@/components/BetaBadge"
;
import
Icon
from
"@/components/Icon"
;
import
Icon
from
"@/components/Icon"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
...
@@ -28,12 +28,6 @@ const Setting = () => {
...
@@ -28,12 +28,6 @@ const Setting = () => {
});
});
const
isHost
=
isEqual
(
user
.
role
,
"HOST"
);
const
isHost
=
isEqual
(
user
.
role
,
"HOST"
);
useEffect
(()
=>
{
if
(
!
user
)
{
window
.
location
.
href
=
"/auth"
;
}
},
[]);
const
handleSectionSelectorItemClick
=
(
settingSection
:
SettingSection
)
=>
{
const
handleSectionSelectorItemClick
=
(
settingSection
:
SettingSection
)
=>
{
setState
({
setState
({
selectedSection
:
settingSection
,
selectedSection
:
settingSection
,
...
...
web/src/router/index.tsx
View file @
936fe5ac
import
{
lazy
}
from
"react"
;
import
{
lazy
}
from
"react"
;
import
{
createBrowserRouter
}
from
"react-router-dom"
;
import
{
createBrowserRouter
,
redirect
}
from
"react-router-dom"
;
import
App
from
"@/App"
;
import
App
from
"@/App"
;
import
{
isNullorUndefined
}
from
"@/helpers/utils"
;
import
Archived
from
"@/pages/Archived"
;
import
Archived
from
"@/pages/Archived"
;
import
DailyReview
from
"@/pages/DailyReview"
;
import
DailyReview
from
"@/pages/DailyReview"
;
import
ResourcesDashboard
from
"@/pages/ResourcesDashboard"
;
import
ResourcesDashboard
from
"@/pages/ResourcesDashboard"
;
import
Setting
from
"@/pages/Setting"
;
import
Setting
from
"@/pages/Setting"
;
import
{
initialGlobalState
}
from
"@/store/module"
;
import
store
from
"@/store"
;
import
{
initialGlobalState
,
initialUserState
}
from
"@/store/module"
;
const
Root
=
lazy
(()
=>
import
(
"@/layouts/Root"
));
const
Root
=
lazy
(()
=>
import
(
"@/layouts/Root"
));
const
Auth
=
lazy
(()
=>
import
(
"@/pages/Auth"
));
const
Auth
=
lazy
(()
=>
import
(
"@/pages/Auth"
));
...
@@ -37,14 +39,14 @@ const router = createBrowserRouter([
...
@@ -37,14 +39,14 @@ const router = createBrowserRouter([
{
{
path
:
"/"
,
path
:
"/"
,
element
:
<
App
/>,
element
:
<
App
/>,
loader
:
async
()
=>
{
await
initialGlobalStateLoader
();
return
null
;
},
children
:
[
children
:
[
{
{
path
:
"/auth"
,
path
:
"/auth"
,
element
:
<
Auth
/>,
element
:
<
Auth
/>,
loader
:
async
()
=>
{
await
initialGlobalStateLoader
();
return
null
;
},
},
},
{
{
path
:
"/auth/callback"
,
path
:
"/auth/callback"
,
...
@@ -53,10 +55,25 @@ const router = createBrowserRouter([
...
@@ -53,10 +55,25 @@ const router = createBrowserRouter([
{
{
path
:
"/"
,
path
:
"/"
,
element
:
<
Root
/>,
element
:
<
Root
/>,
loader
:
async
()
=>
{
try
{
await
initialUserState
();
}
catch
(
error
)
{
// do nth
}
return
null
;
},
children
:
[
children
:
[
{
{
path
:
""
,
path
:
""
,
element
:
<
Home
/>,
element
:
<
Home
/>,
loader
:
async
()
=>
{
const
{
user
}
=
store
.
getState
().
user
;
if
(
isNullorUndefined
(
user
))
{
return
redirect
(
"/explore"
);
}
},
},
},
{
{
path
:
"explore"
,
path
:
"explore"
,
...
@@ -65,18 +82,46 @@ const router = createBrowserRouter([
...
@@ -65,18 +82,46 @@ const router = createBrowserRouter([
{
{
path
:
"review"
,
path
:
"review"
,
element
:
<
DailyReview
/>,
element
:
<
DailyReview
/>,
loader
:
async
()
=>
{
const
{
user
}
=
store
.
getState
().
user
;
if
(
isNullorUndefined
(
user
))
{
return
redirect
(
"/explore"
);
}
},
},
},
{
{
path
:
"resources"
,
path
:
"resources"
,
element
:
<
ResourcesDashboard
/>,
element
:
<
ResourcesDashboard
/>,
loader
:
async
()
=>
{
const
{
user
}
=
store
.
getState
().
user
;
if
(
isNullorUndefined
(
user
))
{
return
redirect
(
"/explore"
);
}
},
},
},
{
{
path
:
"archived"
,
path
:
"archived"
,
element
:
<
Archived
/>,
element
:
<
Archived
/>,
loader
:
async
()
=>
{
const
{
user
}
=
store
.
getState
().
user
;
if
(
isNullorUndefined
(
user
))
{
return
redirect
(
"/explore"
);
}
},
},
},
{
{
path
:
"setting"
,
path
:
"setting"
,
element
:
<
Setting
/>,
element
:
<
Setting
/>,
loader
:
async
()
=>
{
const
{
user
}
=
store
.
getState
().
user
;
if
(
isNullorUndefined
(
user
))
{
return
redirect
(
"/explore"
);
}
},
},
},
],
],
},
},
...
...
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