feat: locking transaction page.

This commit is contained in:
elforjani13
2021-12-13 13:48:21 +02:00
parent 4fe4178090
commit 62e5db86a5
6 changed files with 88 additions and 60 deletions

View File

@@ -2,45 +2,24 @@ import React from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
import clsx from 'classnames';
import { TransactionsLockingProvider } from './TransactionsLockingProvider';
import { TransactionLockingContent } from './components';
import withDialogActions from 'containers/Dialog/withDialogActions';
import { useTransactionsLockingContext } from './TransactionsLockingProvider';
import { compose } from 'utils';
const DataTest = [
{
isEnabled: true,
name: 'sales',
module: 'sales',
description:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do',
},
{
isEnabled: false,
name: 'purchases',
module: 'purchases',
description:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do',
},
{
isEnabled: false,
name: 'financial',
description:
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do',
},
];
function Paragraph({ className, children }) {
return <p className={clsx('paragraph', className)}>{children}</p>;
}
function TransactionsLockingList({ items }) {
return items.map(({ isEnabled, name, description }) => (
function TransactionsLockingList({ items, onlock, onUnlock, onUnlockPartial }) {
return items.map(({ is_enabled, formatted_module, description }) => (
<TransactionLockingContent
name={name}
name={formatted_module}
description={description}
isEnabled={isEnabled}
isEnabled={is_enabled}
onLock={onlock}
onUnlockPartial={onUnlockPartial}
onEditLock={onUnlock}
/>
));
}
@@ -52,13 +31,25 @@ function TransactionsLockingListPage({
// #withDialogActions
openDialog,
}) {
// Handle switch transactions locking.
const handleSwitchTransactionsLocking = () => {
// Handle locking transactions.
const handleLockingTransactions = () => {
openDialog('locking-transactions', {});
};
// Handle unlocking transactions
const handleUnlockTransactions = () => {
openDialog('unlocking-transactions', {});
};
// Handle unlocking transactions
const handleUnlockingPartial = () => {
openDialog('unlocking-partial-transactions', {});
};
const {
transactionsLocking: { modules },
} = useTransactionsLockingContext();
return (
<TransactionsLockingProvider>
<TransactionsLocking>
<TransactionsLockingParagraph>
<TransLockingDesc>
@@ -71,9 +62,13 @@ function TransactionsLockingListPage({
<Link to={'/'}> {''}Lock All Transactions At Once </Link>
</TransactionsLockingParagraph>
<TransactionsLockingList items={DataTest} />
<TransactionsLockingList
items={modules}
onlock={handleLockingTransactions}
onUnlock={handleUnlockTransactions}
onUnlockPartial={handleUnlockingPartial}
/>
</TransactionsLocking>
</TransactionsLockingProvider>
);
}
export default compose(withDialogActions)(TransactionsLockingListPage);

View File

@@ -0,0 +1,12 @@
import React from 'react';
import { TransactionsLockingProvider } from './TransactionsLockingProvider';
import TransactionsLockingList from './TransactionsLockingList';
export default function TransactionsLockingPage() {
return (
<TransactionsLockingProvider>
<TransactionsLockingList />
</TransactionsLockingProvider>
);
}

View File

@@ -1,5 +1,6 @@
import React from 'react';
import DashboardInsider from 'components/Dashboard/DashboardInsider';
import { useTransactionsLocking } from 'hooks/query';
const TransactionsLockingContext = React.createContext();
@@ -7,13 +8,22 @@ const TransactionsLockingContext = React.createContext();
* Transactions locking data provider.
*/
function TransactionsLockingProvider({ ...props }) {
// Fetch
const {
data: transactionsLocking,
isFetching: isTransactionLockingFetching,
isLoading: isTransactionLockingLoading,
} = useTransactionsLocking();
console.log(transactionsLocking, 'XX');
// Provider
const provider = {};
const provider = {
transactionsLocking,
};
return (
<DashboardInsider
// loading={}
>
<DashboardInsider loading={isTransactionLockingLoading}>
<TransactionsLockingContext.Provider value={provider} {...props} />
</DashboardInsider>
);

View File

@@ -35,6 +35,7 @@ export const TransactionLockingContent = ({
const handleUnlockFull = (event) => {
safeInvoke(onUnlockFull, module, event);
};
return (
<TransactionLockingWrapp>
<TransLockingInner>
@@ -44,15 +45,10 @@ export const TransactionLockingContent = ({
<TransLockingContent>
<TransLockingItemTitle>
<T id={name} />{' '}
<Hint
content={
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do'
}
position={Position.BOTTOM_LEFT}
/>
{name}
<Hint content={description} position={Position.BOTTOM_LEFT} />
</TransLockingItemTitle>
<TransLockingItemDesc>{description}</TransLockingItemDesc>
<TransLockingItemDesc>{''}</TransLockingItemDesc>
</TransLockingContent>
<TransLockingActions>

View File

@@ -85,3 +85,18 @@ export function useCancelUnlockingPartialTransactions(props) {
},
);
}
/**
* Retrive the transactions locking.
*/
export function useTransactionsLocking(query, props) {
return useRequestQuery(
[t.TRANSACTIONS_LOCKING, query],
{ method: 'get', url: 'transactions-locking', params: query },
{
select: (res) => res.data.data,
defaultData: [],
...props,
},
);
}

View File

@@ -875,7 +875,7 @@ export const getDashboardRoutes = () => [
{
path: `/transactions-locking`,
component: lazy(() =>
import('../containers/TransactionsLocking/TransactionsLockingList'),
import('../containers/TransactionsLocking/TransactionsLockingPage'),
),
pageTitle: intl.get('sidebar.transactions_locaking'),
},