Добавлено меню - всё прочитано

This commit is contained in:
Pavel Gnedov 2023-06-20 05:10:31 +07:00
parent f08ff88cb9
commit 35a5b9583f
2 changed files with 34 additions and 1 deletions

View file

@ -2,6 +2,8 @@ import { observer } from 'mobx-react-lite';
import React from 'react';
import * as IssuesListBoardStore from './store';
import * as IssuesListBoardNs from './issues-list-board';
import * as TopRightMenuNs from '../misc-components/top-right-menu';
import { SetIssuesReadingTimestamp } from '../utils/unreaded-provider';
export type Props = {
store: IssuesListBoardStore.IPageStore
@ -19,5 +21,18 @@ export const IssuesListBoards = observer((props: Props): JSX.Element => {
const board = <IssuesListBoardNs.IssuesListBoard store={boardData} key={key}/>
list.push(board);
}
return <>{list}</>;
const topRightMenuStore = TopRightMenuNs.Store.create({visible: false});
const onAllReadItemClick = (e: React.MouseEvent) => {
e.stopPropagation();
SetIssuesReadingTimestamp(props.store.issueIds);
IssuesListBoardStore.PageStoreLoadData(props.store);
};
return (
<>
<TopRightMenuNs.TopRightMenu store={topRightMenuStore}>
<button onClick={onAllReadItemClick}>Прочитать всё</button>
</TopRightMenuNs.TopRightMenu>
{list}
</>
);
});

View file

@ -40,6 +40,24 @@ export const PageStore = types.model({
self.loaded = true;
}
};
}).views((self) => {
return {
get issueIds(): number[] {
if (!self.data) return [];
const data = self.data;
const res = [] as number[];
for (let i = 0; i < data.length; i++) {
const itemData = data[i];
for (let j = 0; j < itemData.data.length; j++) {
const issue = itemData.data[j];
if (res.indexOf(issue.id) < 0) {
res.push(issue.id);
}
}
}
return res;
}
};
});
export async function PageStoreLoadData(store: IPageStore): Promise<void> {