Skip to content

Commit 79ccfd9

Browse files
authored
Maintain loadflow parameters form actions buttons (#775)
Signed-off-by: Hugo Marcellin <[email protected]>
1 parent aa6d55e commit 79ccfd9

File tree

2 files changed

+46
-33
lines changed

2 files changed

+46
-33
lines changed

src/components/parameters/loadflow/load-flow-parameters-content.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ const styles = {
3939
maxWidth: {
4040
width: '100%',
4141
},
42+
wrapper: {
43+
flexGrow: 1,
44+
overflow: 'auto',
45+
paddingLeft: 1,
46+
},
4247
};
4348

4449
function LoadFlowParametersContent({
@@ -49,13 +54,7 @@ function LoadFlowParametersContent({
4954
defaultLimitReductions,
5055
}: Readonly<LoadFlowParametersContentProps>) {
5156
return (
52-
<Box
53-
sx={{
54-
flexGrow: 1,
55-
overflow: 'auto',
56-
paddingLeft: 1,
57-
}}
58-
>
57+
<Box sx={styles.wrapper}>
5958
<Grid container sx={styles.container}>
6059
<Grid item sx={styles.maxWidth}>
6160
<TabPanel value={selectedTab} index={TabValues.GENERAL}>

src/components/parameters/loadflow/load-flow-parameters-form.tsx

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
66
*/
77

8-
import { Box, LinearProgress } from '@mui/material';
8+
import { Box, Grid, LinearProgress, Theme } from '@mui/material';
99
import { ReactNode } from 'react';
1010
import { UseLoadFlowParametersFormReturn } from './use-load-flow-parameters-form';
1111
import LoadFlowParametersHeader from './load-flow-parameters-header';
@@ -18,6 +18,32 @@ interface LoadFlowParametersFormProps {
1818
renderActions?: () => ReactNode;
1919
}
2020

21+
const styles = {
22+
form: {
23+
height: '100%',
24+
display: 'flex',
25+
position: 'relative',
26+
flexDirection: 'column',
27+
},
28+
loadflowParameters: {
29+
flexGrow: 1,
30+
paddingLeft: 1,
31+
overflow: 'auto',
32+
},
33+
actions: {
34+
flexGrow: 0,
35+
},
36+
content: (theme: Theme) => ({
37+
overflowY: 'auto',
38+
overflowX: 'hidden',
39+
maxHeight: 'calc(100% - 15vh)',
40+
paddingRight: theme.spacing(2),
41+
paddingTop: theme.spacing(2),
42+
paddingBottom: theme.spacing(1),
43+
flexGrow: 1,
44+
}),
45+
};
46+
2147
export function LoadFlowParametersForm({
2248
loadflowMethods,
2349
renderTitleFields,
@@ -39,42 +65,30 @@ export function LoadFlowParametersForm({
3965

4066
return (
4167
<CustomFormProvider validationSchema={formSchema} {...formMethods} removeOptional>
42-
{renderTitleFields?.()}
43-
<Box
44-
sx={{
45-
height: '100%',
46-
display: 'flex',
47-
position: 'relative',
48-
flexDirection: 'column',
49-
}}
50-
>
68+
<Box sx={styles.form}>
69+
{renderTitleFields?.()}
5170
{paramsLoaded ? (
52-
<Box
53-
sx={{
54-
height: '100%',
55-
display: 'flex',
56-
position: 'relative',
57-
flexDirection: 'column',
58-
}}
59-
>
71+
<Box sx={styles.loadflowParameters}>
6072
<LoadFlowParametersHeader
6173
selectedTab={selectedTab}
6274
handleTabChange={handleTabChange}
6375
tabIndexesWithError={tabIndexesWithError}
6476
formattedProviders={formattedProviders}
6577
/>
66-
<LoadFlowParametersContent
67-
selectedTab={selectedTab}
68-
currentProvider={currentProvider ?? ''}
69-
specificParameters={specificParameters}
70-
params={params}
71-
defaultLimitReductions={defaultLimitReductions}
72-
/>
78+
<Grid container sx={styles.content}>
79+
<LoadFlowParametersContent
80+
selectedTab={selectedTab}
81+
currentProvider={currentProvider ?? ''}
82+
specificParameters={specificParameters}
83+
params={params}
84+
defaultLimitReductions={defaultLimitReductions}
85+
/>
86+
</Grid>
7387
</Box>
7488
) : (
7589
<LinearProgress />
7690
)}
77-
{renderActions?.()}
91+
{renderActions && <Box sx={styles.actions}>{renderActions?.()}</Box>}
7892
</Box>
7993
</CustomFormProvider>
8094
);

0 commit comments

Comments
 (0)