Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit abd7d29

Browse files
committed
chore: Merge branch 'dev'
2 parents 5267a2f + 20a9eab commit abd7d29

File tree

5 files changed

+2189
-4875
lines changed

5 files changed

+2189
-4875
lines changed

containers/UserFavorited/index.js

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,62 +8,62 @@ import React from 'react'
88

99
import { connectStore, buildLog } from '@utils'
1010

11+
import FavoritesCats from '@containers/FavoritesCats'
1112
import PagedContents from '@components/PagedContents'
12-
import FavoritesCats from '../FavoritesCats'
1313
import Breadcrumbs from './Breadcrumbs'
1414

15-
import * as logic from './logic'
15+
import {
16+
useInit,
17+
onCatSelect,
18+
backToCategoryList,
19+
changeFavoriteThread,
20+
onReload,
21+
onPreview,
22+
} from './logic'
1623

1724
/* eslint-disable-next-line */
1825
const log = buildLog('C:UserFavorited')
1926

20-
class UserFavoritesContainer extends React.Component {
21-
componentDidMount() {
22-
const { userFavorited } = this.props
23-
logic.init(userFavorited)
24-
}
27+
const UserFavoritedContainer = ({ userFavorited }) => {
28+
useInit(userFavorited)
2529

26-
render() {
27-
const { userFavorited } = this.props
30+
const {
31+
pagedData,
32+
parentView,
33+
curView,
34+
curCategoryData,
35+
curThread,
36+
viewingUser,
37+
} = userFavorited
2838

29-
const {
30-
pagedData,
31-
parentView,
32-
curView,
33-
curCategoryData,
34-
curThread,
35-
viewingUser,
36-
} = userFavorited
39+
const { totalCount } = pagedData
3740

38-
const { totalCount } = pagedData
41+
return (
42+
<div>
43+
{parentView === 'CATEGORY_LIST' ? (
44+
<FavoritesCats onSelect={onCatSelect} displayMode="list" />
45+
) : (
46+
<React.Fragment>
47+
<Breadcrumbs
48+
gotoParent={backToCategoryList}
49+
category={curCategoryData}
50+
curThread={curThread}
51+
totalCount={totalCount}
52+
changeFavoriteThread={changeFavoriteThread}
53+
/>
3954

40-
return (
41-
<div>
42-
{parentView === 'CATEGORY_LIST' ? (
43-
<FavoritesCats onSelect={logic.onCatSelect} displayMode="list" />
44-
) : (
45-
<React.Fragment>
46-
<Breadcrumbs
47-
gotoParent={logic.backToCategoryList}
48-
category={curCategoryData}
49-
curThread={curThread}
50-
totalCount={totalCount}
51-
changeFavoriteThread={logic.changeFavoriteThread}
52-
/>
53-
54-
<PagedContents
55-
data={pagedData}
56-
thread={curThread}
57-
curView={curView}
58-
emptyPrefix={`未找到 ${viewingUser.nickname} 收藏的`}
59-
onPageChange={logic.reload}
60-
onPreview={logic.onPreview}
61-
/>
62-
</React.Fragment>
63-
)}
64-
</div>
65-
)
66-
}
55+
<PagedContents
56+
data={pagedData}
57+
thread={curThread}
58+
curView={curView}
59+
emptyPrefix={`未找到 ${viewingUser.nickname} 收藏的`}
60+
onPageChange={onReload}
61+
onPreview={onPreview}
62+
/>
63+
</React.Fragment>
64+
)}
65+
</div>
66+
)
6767
}
6868

69-
export default connectStore(UserFavoritesContainer)
69+
export default connectStore(UserFavoritedContainer)

containers/UserFavorited/logic.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import R from 'ramda'
2+
import { useEffect } from 'react'
23

34
import {
45
buildLog,
@@ -53,7 +54,7 @@ export const loadVideos = (page = 1) =>
5354
export const loadRepos = (page = 1) =>
5455
sr71$.query(S.favoritedRepos, getQueryArgs(page))
5556

56-
export const reload = page => {
57+
export const onReload = page => {
5758
switch (store.curThread) {
5859
case THREAD.JOB:
5960
return loadJobs(page)
@@ -72,7 +73,7 @@ export const reload = page => {
7273
export const changeFavoriteThread = curThread => {
7374
store.markState({ curThread })
7475
// TODO: change route
75-
reload()
76+
onReload()
7677
}
7778

7879
export const onPreview = data => {
@@ -109,9 +110,18 @@ const DataSolver = [
109110
]
110111
const ErrSolver = []
111112

112-
export const init = _store => {
113-
store = _store
114-
115-
if (sub$) return false
116-
sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver))
113+
// ###############################
114+
// init & uninit
115+
// ###############################
116+
export const useInit = _store => {
117+
useEffect(() => {
118+
store = _store
119+
if (sub$) return false
120+
sub$ = sr71$.data().subscribe($solver(DataSolver, ErrSolver))
121+
122+
return () => {
123+
sub$.unsubscribe()
124+
sub$ = null
125+
}
126+
}, [_store])
117127
}

containers/UserFavorited/store.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import { types as t, getParent } from 'mobx-state-tree'
77
// import R from 'ramda'
88

9-
/* import { markStates, buildLog, stripMobx, TYPE, FILTER } from '@utils' */
109
import { markStates, buildLog, TYPE, stripMobx, THREAD } from '@utils'
10+
1111
import {
1212
PagedPosts,
1313
PagedJobs,

0 commit comments

Comments
 (0)