Skip to content

Commit

Permalink
feat(wordpage): add page export/delete
Browse files Browse the repository at this point in the history
  • Loading branch information
crimx committed Aug 26, 2018
1 parent b632a28 commit 6ceb21a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
10 changes: 10 additions & 0 deletions src/_locales/wordpage/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@
"zh_CN": ",确定?",
"zh_TW": ",確認?"
},
"delete_page": {
"en": "Delete page",
"zh_CN": "删除本页单词",
"zh_TW": "刪除本頁單字"
},
"delete_selected": {
"en": "Delete selected",
"zh_CN": "删除选中单词",
Expand Down Expand Up @@ -79,6 +84,11 @@
"zh_CN": "代表的内容",
"zh_TW": "代表的內容"
},
"export_page": {
"en": "Export page",
"zh_CN": "导出本页单词",
"zh_TW": "輸出本頁單字"
},
"export_placeholder": {
"en": "Placeholder",
"zh_CN": "替换符",
Expand Down
17 changes: 13 additions & 4 deletions src/components/WordPage/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export interface WordPageMainState {
rowSelection: TableRowSelection<Word>
selectedRows: Word[]
loading: boolean
exportModalTitle: '' | 'all' | 'selected'
exportModalTitle: '' | 'all' | 'selected' | 'page'
exportModalWords: Word[]
}

Expand Down Expand Up @@ -250,6 +250,11 @@ export class WordPageMain extends React.Component<WordPageMainInnerProps, WordPa
exportModalTitle: key,
exportModalWords: this.state.selectedRows,
})
} else if (key === 'page') {
this.setState({
exportModalTitle: key,
exportModalWords: this.state.words,
})
} else {
this.setState({ exportModalTitle: '' })
}
Expand All @@ -273,7 +278,9 @@ export class WordPageMain extends React.Component<WordPageMainInnerProps, WordPa
onOk: () => {
const keys = key === 'selected'
? this.state.rowSelection.selectedRowKeys as number[]
: undefined
: key === 'page'
? this.state.words.map(({ date }) => date)
: undefined
deleteWords(area, keys)
.then(() => this.fetchData$$.next())
},
Expand Down Expand Up @@ -399,10 +406,11 @@ export class WordPageMain extends React.Component<WordPageMainInnerProps, WordPa
/>
<Dropdown overlay={
<Menu onClick={this.handleBtnExportClick}>
<Menu.Item key='all'>{t('export_all')}</Menu.Item>
{selectedRows.length > 0 &&
<Menu.Item key='selected'>{t('export_selected')}</Menu.Item>
}
<Menu.Item key='page'>{t('export_page')}</Menu.Item>
<Menu.Item key='all'>{t('export_all')}</Menu.Item>
</Menu>
}>
<Button style={{ marginLeft: 8 }}>
Expand All @@ -411,10 +419,11 @@ export class WordPageMain extends React.Component<WordPageMainInnerProps, WordPa
</Dropdown>
<Dropdown overlay={
<Menu onClick={this.handleBtnDeleteClick}>
<Menu.Item key='all'>{t('delete_all')}</Menu.Item>
{selectedRows.length > 0 &&
<Menu.Item key='selected'>{t('delete_selected')}</Menu.Item>
}
<Menu.Item key='page'>{t('delete_page')}</Menu.Item>
<Menu.Item key='all'>{t('delete_all')}</Menu.Item>
</Menu>
}>
<Button type='danger' style={{ marginLeft: 8 }}>
Expand Down
2 changes: 1 addition & 1 deletion src/components/WordPage/ExportModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { storage } from '@/_helpers/browser-api'
const { Content, Sider } = Layout

export interface ExportModalProps {
title: 'all' | 'selected' | ''
title: 'all' | 'selected' | 'page' | ''
rawWords: Word[]
onCancel: (e: React.MouseEvent<any>) => any
}
Expand Down

0 comments on commit 6ceb21a

Please sign in to comment.