fix: alert confirm to publish manual journal.

This commit is contained in:
elforjani3
2020-11-22 10:04:25 +02:00
parent 4133d4dc41
commit 67f6ee64de
2 changed files with 44 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
import React, { useEffect, useState, useMemo, useCallback } from 'react'; import React, { useEffect, useState, useMemo, useCallback } from 'react';
import { Route, Switch, useHistory, withRouter } from 'react-router-dom'; import { Route, Switch, useHistory, withRouter } from 'react-router-dom';
import { useQuery } from 'react-query'; import { queryCache, useQuery } from 'react-query';
import { Alert, Intent } from '@blueprintjs/core'; import { Alert, Intent } from '@blueprintjs/core';
import AppToaster from 'components/AppToaster'; import AppToaster from 'components/AppToaster';
import { import {
@@ -53,6 +53,7 @@ function ManualJournalsTable({
const [deleteManualJournal, setDeleteManualJournal] = useState(false); const [deleteManualJournal, setDeleteManualJournal] = useState(false);
const [selectedRows, setSelectedRows] = useState([]); const [selectedRows, setSelectedRows] = useState([]);
const [bulkDelete, setBulkDelete] = useState(false); const [bulkDelete, setBulkDelete] = useState(false);
const [publishManualJournal, setPublishManualJournal] = useState(false);
const { formatMessage } = useIntl(); const { formatMessage } = useIntl();
@@ -176,19 +177,36 @@ function ManualJournalsTable({
[addManualJournalsTableQueries], [addManualJournalsTableQueries],
); );
const handlePublishJournal = useCallback( // Handle publish manual Journal click.
(journal) => { const handlePublishMaunalJournal = useCallback(
requestPublishManualJournal(journal.id).then(() => { (jouranl) => {
setPublishManualJournal(jouranl);
},
[setPublishManualJournal],
);
// Handle cancel manual journal alert.
const handleCancelPublishMaunalJournal = useCallback(() => {
setPublishManualJournal(false);
}, [setPublishManualJournal]);
// Handle publish manual journal confirm.
const handleConfirmPublishManualJournal = useCallback(() => {
requestPublishManualJournal(publishManualJournal.id)
.then(() => {
setPublishManualJournal(false);
AppToaster.show({ AppToaster.show({
message: formatMessage({ message: formatMessage({
id: 'the_manual_journal_id_has_been_published', id: 'the_manual_journal_has_been_published',
}), }),
intent: Intent.SUCCESS, intent: Intent.SUCCESS,
}); });
queryCache.invalidateQueries('manual-journals-table');
})
.catch((error) => {
setPublishManualJournal(false);
}); });
}, }, [publishManualJournal, requestPublishManualJournal, formatMessage]);
[requestPublishManualJournal, formatMessage],
);
// Handle selected rows change. // Handle selected rows change.
const handleSelectedRowsChange = useCallback( const handleSelectedRowsChange = useCallback(
@@ -223,7 +241,7 @@ function ManualJournalsTable({
<ManualJournalsDataTable <ManualJournalsDataTable
onDeleteJournal={handleDeleteJournal} onDeleteJournal={handleDeleteJournal}
onEditJournal={handleEditJournal} onEditJournal={handleEditJournal}
onPublishJournal={handlePublishJournal} onPublishJournal={handlePublishMaunalJournal}
onSelectedRowsChange={handleSelectedRowsChange} onSelectedRowsChange={handleSelectedRowsChange}
/> />
</Route> </Route>
@@ -260,6 +278,18 @@ function ManualJournalsTable({
/> />
</p> </p>
</Alert> </Alert>
<Alert
cancelButtonText={<T id={'cancel'} />}
confirmButtonText={<T id={'publish'} />}
intent={Intent.WARNING}
isOpen={publishManualJournal}
onCancel={handleCancelPublishMaunalJournal}
onConfirm={handleConfirmPublishManualJournal}
>
<p>
<T id={'are_sure_to_publish_this_manual_journal'} />
</p>
</Alert>
</DashboardPageContent> </DashboardPageContent>
</DashboardInsider> </DashboardInsider>
); );

View File

@@ -204,8 +204,8 @@ export default {
'The journal #{number} has been successfully edited.', 'The journal #{number} has been successfully edited.',
the_journal_has_been_successfully_deleted: the_journal_has_been_successfully_deleted:
'The journal has been successfully deleted', 'The journal has been successfully deleted',
the_manual_journal_id_has_been_published: the_manual_journal_has_been_published:
'The manual journal id has been published', 'The manual journal has been published',
the_journals_has_been_successfully_deleted: the_journals_has_been_successfully_deleted:
'The journals has been successfully deleted ', 'The journals has been successfully deleted ',
credit: 'Credit', credit: 'Credit',
@@ -841,4 +841,7 @@ export default {
once_delete_these_vendors_you_will_not_able_restore_them: once_delete_these_vendors_you_will_not_able_restore_them:
"Once you delete these vendors, you won't be able to retrieve them later. Are you sure you want to delete them?", "Once you delete these vendors, you won't be able to retrieve them later. Are you sure you want to delete them?",
vendor_has_bills: 'Vendor has bills', vendor_has_bills: 'Vendor has bills',
are_sure_to_publish_this_manual_journal:
'Are you sure you want to publish this manual journal?',
}; };