fix: match transaction aside layout

This commit is contained in:
Ahmed Bouhuolia
2024-07-01 19:24:09 +02:00
parent c95eec565d
commit 55caf037cd
11 changed files with 58 additions and 17 deletions

View File

@@ -1,5 +1,7 @@
:root { :root {
--aside-topbar-offset: 60px; --aside-topbar-offset: 60px;
--aside-width: 34%;
--aside-min-width: 400px;
} }
.main{ .main{
@@ -9,11 +11,14 @@
} }
.aside{ .aside{
width: 500px; width: var(--aside-width);
min-width: var(--aside-min-width);
height: 100dvh; height: 100dvh;
border-left: 1px solid rgba(17, 20, 24, 0.15); border-left: 1px solid rgba(17, 20, 24, 0.15);
height: inherit; height: inherit;
overflow: auto; overflow: auto;
display: flex;
flex-direction: column;
} }
.root { .root {

View File

@@ -1,3 +1,9 @@
.root{
display: flex;
flex-direction: column;
flex: 1 1 auto;
}
.title{ .title{
align-items: center; align-items: center;
background: #fff; background: #fff;
@@ -9,3 +15,9 @@
z-index: 0; z-index: 0;
font-weight: 600; font-weight: 600;
} }
.content{
display: flex;
flex-direction: column;
flex: 1 1 auto;
}

View File

@@ -20,7 +20,7 @@ export function Aside({
onClose && onClose(); onClose && onClose();
}; };
return ( return (
<Box> <Box className={styles.root}>
<Group position="apart" className={styles.title}> <Group position="apart" className={styles.title}>
{title} {title}
@@ -34,7 +34,7 @@ export function Aside({
/> />
)} )}
</Group> </Group>
<Box>{children}</Box> <Box className={styles.content}>{children}</Box>
</Box> </Box>
); );
} }

View File

@@ -51,7 +51,8 @@ function RecognizedTransactionsTableRoot({
const { mutateAsync: excludeBankTransaction } = const { mutateAsync: excludeBankTransaction } =
useExcludeUncategorizedTransaction(); useExcludeUncategorizedTransaction();
const { recognizedTransactions } = useRecognizedTransactionsBoot(); const { recognizedTransactions, isRecongizedTransactionsLoading } =
useRecognizedTransactionsBoot();
// Retrieve table columns. // Retrieve table columns.
const columns = useUncategorizedTransactionsColumns(); const columns = useUncategorizedTransactionsColumns();
@@ -96,8 +97,8 @@ function RecognizedTransactionsTableRoot({
columns={columns} columns={columns}
data={recognizedTransactions} data={recognizedTransactions}
sticky={true} sticky={true}
loading={false} loading={isRecongizedTransactionsLoading}
headerLoading={false} headerLoading={isRecongizedTransactionsLoading}
expandColumnSpace={1} expandColumnSpace={1}
expandToggleColumn={2} expandToggleColumn={2}
selectionColumnWidth={45} selectionColumnWidth={45}

View File

@@ -1,6 +1,7 @@
// @ts-nocheck // @ts-nocheck
import { Menu, MenuItem, MenuDivider } from '@blueprintjs/core'; import { Menu, MenuItem, MenuDivider } from '@blueprintjs/core';
import { safeCallback } from '@/utils'; import { safeCallback } from '@/utils';
import { Icon } from '@/components';
export function ActionsMenu({ export function ActionsMenu({
payload: { onCategorize, onExclude }, payload: { onCategorize, onExclude },
@@ -13,7 +14,11 @@ export function ActionsMenu({
onClick={safeCallback(onCategorize, original)} onClick={safeCallback(onCategorize, original)}
/> />
<MenuDivider /> <MenuDivider />
<MenuItem text={'Exclude'} onClick={safeCallback(onExclude, original)} /> <MenuItem
text={'Exclude'}
onClick={safeCallback(onExclude, original)}
icon={<Icon icon="disable" iconSize={16} />}
/>
</Menu> </Menu>
); );
} }

View File

@@ -1,3 +1,4 @@
// @ts-nocheck
import * as R from 'ramda'; import * as R from 'ramda';
import { transformToForm, transfromToSnakeCase } from '@/utils'; import { transformToForm, transfromToSnakeCase } from '@/utils';
import { useCategorizeTransactionTabsBoot } from '@/containers/CashFlow/CategorizeTransactionAside/CategorizeTransactionTabsBoot'; import { useCategorizeTransactionTabsBoot } from '@/containers/CashFlow/CategorizeTransactionAside/CategorizeTransactionTabsBoot';

View File

@@ -1,7 +1,7 @@
.root { .root {
position: relative; flex: 1 1 auto;
padding-bottom: 110px; overflow: auto;
} }
.transaction { .transaction {
@@ -25,9 +25,6 @@
.footer { .footer {
background-color: #fff; background-color: #fff;
position: fixed;
bottom: 0;
width: 100%;
} }
.footerActions { .footerActions {

View File

@@ -1,6 +1,10 @@
.tabs :global .bp4-tab-panel{ .tabs :global .bp4-tab-panel{
margin-top: 0; margin-top: 0;
display: flex;
flex-direction: column;
flex: 1 1 auto;
height: calc(100dvh - 144px);
} }
.tabs :global .bp4-tab-list{ .tabs :global .bp4-tab-list{
background: #fff; background: #fff;
@@ -11,3 +15,9 @@
.tabs :global .bp4-large > .bp4-tab{ .tabs :global .bp4-large > .bp4-tab{
font-size: 14px; font-size: 14px;
} }
.tabs {
flex: 1 1 auto;
display: flex;
flex-direction: column;
}

View File

@@ -9,6 +9,11 @@
&.active{ &.active{
border-color: #88ABDB; border-color: #88ABDB;
box-shadow: 0 0 0 2px rgba(136, 171, 219, 0.2); box-shadow: 0 0 0 2px rgba(136, 171, 219, 0.2);
.label,
.date {
color: rgb(21, 82, 200),
}
} }
&:hover:not(.active){ &:hover:not(.active){
@@ -32,4 +37,9 @@
.label { .label {
color: #10161A; color: #10161A;
font-size: 15px; font-size: 15px;
}
.date {
font-size: 12px;
color: #5C7080;
} }

View File

@@ -45,7 +45,7 @@ export function MatchTransaction({
> >
<Stack spacing={3}> <Stack spacing={3}>
<span className={styles.label}>{label}</span> <span className={styles.label}>{label}</span>
<Text style={{ fontSize: 12, color: '#5C7080' }}>Date: {date}</Text> <Text className={styles.date}>Date: {date}</Text>
</Stack> </Stack>
<Checkbox <Checkbox

View File

@@ -58,9 +58,10 @@ export function MatchingBankTransaction() {
uncategorizedTransactionId={uncategorizedTransactionId} uncategorizedTransactionId={uncategorizedTransactionId}
> >
<Formik initialValues={initialValues} onSubmit={handleSubmit}> <Formik initialValues={initialValues} onSubmit={handleSubmit}>
<Form> <>
<MatchingBankTransactionContent /> <MatchingBankTransactionContent />
</Form> <MatchTransactionFooter />
</>
</Formik> </Formik>
</MatchingTransactionBoot> </MatchingTransactionBoot>
); );
@@ -71,7 +72,6 @@ function MatchingBankTransactionContent() {
<Box className={styles.root}> <Box className={styles.root}>
<PerfectMatchingTransactions /> <PerfectMatchingTransactions />
<GoodMatchingTransactions /> <GoodMatchingTransactions />
<MatchTransactionFooter />
</Box> </Box>
); );
} }