aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/home/Home.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-08-07 18:27:04 +0800
committercrupest <crupest@outlook.com>2020-08-07 18:27:04 +0800
commit0d4e3079aa53f9553eb538951b6ebd6bf4a7a2ee (patch)
treecb3dcd5dfd2ea37592f51e22b76c64023ece8aeb /Timeline/ClientApp/src/app/home/Home.tsx
parent394ba7b875e93ec571f92e808ec0ec80298d8a23 (diff)
downloadtimeline-0d4e3079aa53f9553eb538951b6ebd6bf4a7a2ee.tar.gz
timeline-0d4e3079aa53f9553eb538951b6ebd6bf4a7a2ee.tar.bz2
timeline-0d4e3079aa53f9553eb538951b6ebd6bf4a7a2ee.zip
Create home page for offline.
Diffstat (limited to 'Timeline/ClientApp/src/app/home/Home.tsx')
-rw-r--r--Timeline/ClientApp/src/app/home/Home.tsx88
1 files changed, 20 insertions, 68 deletions
diff --git a/Timeline/ClientApp/src/app/home/Home.tsx b/Timeline/ClientApp/src/app/home/Home.tsx
index de25d5c1..b759fa50 100644
--- a/Timeline/ClientApp/src/app/home/Home.tsx
+++ b/Timeline/ClientApp/src/app/home/Home.tsx
@@ -4,16 +4,14 @@ import { Row, Container, Button, Col } from 'reactstrap';
import { useTranslation } from 'react-i18next';
import { useUser } from '../data/user';
-import { TimelineInfo } from '../data/timeline';
-import { getHttpTimelineClient } from '../http/timeline';
import AppBar from '../common/AppBar';
import SearchInput from '../common/SearchInput';
-import TimelineBoardAreaWithoutUser from './TimelineBoardAreaWithoutUser';
-import TimelineBoardAreaWithUser from './TimelineBoardAreaWithUser';
+import BoardWithoutUser from './BoardWithoutUser';
+import BoardWithUser from './BoardWithUser';
import TimelineCreateDialog from './TimelineCreateDialog';
-const Home: React.FC = (_) => {
+const Home: React.FC = () => {
const history = useHistory();
const { t } = useTranslation();
@@ -22,50 +20,6 @@ const Home: React.FC = (_) => {
const [navText, setNavText] = React.useState<string>('');
- const [publicTimelines, setPublicTimelines] = React.useState<
- TimelineInfo[] | undefined
- >(undefined);
- const [ownTimelines, setOwnTimelines] = React.useState<
- TimelineInfo[] | undefined
- >(undefined);
- const [joinTimelines, setJoinTimelines] = React.useState<
- TimelineInfo[] | undefined
- >(undefined);
-
- React.useEffect(() => {
- let subscribe = true;
- if (user == null) {
- setOwnTimelines(undefined);
- setJoinTimelines(undefined);
- void getHttpTimelineClient()
- .listTimeline({ visibility: 'Public' })
- .then((timelines) => {
- if (subscribe) {
- setPublicTimelines(timelines);
- }
- });
- } else {
- setPublicTimelines(undefined);
- void getHttpTimelineClient()
- .listTimeline({ relate: user.username, relateType: 'own' })
- .then((timelines) => {
- if (subscribe) {
- setOwnTimelines(timelines);
- }
- });
- void getHttpTimelineClient()
- .listTimeline({ relate: user.username, relateType: 'join' })
- .then((timelines) => {
- if (subscribe) {
- setJoinTimelines(timelines);
- }
- });
- }
- return () => {
- subscribe = false;
- };
- }, [user]);
-
const [dialog, setDialog] = React.useState<'create' | null>(null);
const goto = React.useCallback((): void => {
@@ -78,14 +32,6 @@ const Home: React.FC = (_) => {
}
}, [navText, history]);
- const openCreateDialog = React.useCallback(() => {
- setDialog('create');
- }, []);
-
- const closeDialog = React.useCallback(() => {
- setDialog(null);
- }, []);
-
return (
<>
<AppBar />
@@ -101,7 +47,13 @@ const Home: React.FC = (_) => {
placeholder="@crupest"
additionalButton={
user != null && (
- <Button color="success" outline onClick={openCreateDialog}>
+ <Button
+ color="success"
+ outline
+ onClick={() => {
+ setDialog('create');
+ }}
+ >
{t('home.createButton')}
</Button>
)
@@ -111,16 +63,9 @@ const Home: React.FC = (_) => {
</Row>
{(() => {
if (user == null) {
- return (
- <TimelineBoardAreaWithoutUser publicTimelines={publicTimelines} />
- );
+ return <BoardWithoutUser />;
} else {
- return (
- <TimelineBoardAreaWithUser
- ownTimelines={ownTimelines}
- joinTimelines={joinTimelines}
- />
- );
+ return <BoardWithUser user={user} />;
}
})()}
</Container>
@@ -142,7 +87,14 @@ const Home: React.FC = (_) => {
<small className="white-space-no-wrap">公安备案 42112102000124</small>
</a>
</footer>
- {dialog === 'create' && <TimelineCreateDialog open close={closeDialog} />}
+ {dialog === 'create' && (
+ <TimelineCreateDialog
+ open
+ close={() => {
+ setDialog(null);
+ }}
+ />
+ )}
</>
);
};