Skip to content

Commit

Permalink
Merge branch 'main' into allow-snack-bar-persistance
Browse files Browse the repository at this point in the history
  • Loading branch information
jamal-khey committed May 15, 2024
2 parents 2df7060 + acc785d commit 64aa533
Show file tree
Hide file tree
Showing 76 changed files with 303 additions and 299 deletions.
24 changes: 12 additions & 12 deletions demo/src/InputsTab.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ import * as yup from 'yup';
import { yupResolver } from '@hookform/resolvers/yup';
import { useForm } from 'react-hook-form';
import { Box, Grid } from '@mui/material';
import AutocompleteInput from '../../src/components/react-hook-form/autocomplete-input';
import TextInput from '../../src/components/react-hook-form/text-input';
import RadioInput from '../../src/components/react-hook-form/radio-input';
import SliderInput from '../../src/components/react-hook-form/slider-input';
import FloatInput from '../../src/components/react-hook-form/numbers/float-input';
import IntegerInput from '../../src/components/react-hook-form/numbers/integer-input';
import SelectInput from '../../src/components/react-hook-form/select-inputs/select-input';
import CheckboxInput from '../../src/components/react-hook-form/booleans/checkbox-input';
import SwitchInput from '../../src/components/react-hook-form/booleans/switch-input';
import SubmitButton from '../../src/components/react-hook-form/utils/submit-button';
import ExpandingTextField from '../../src/components/react-hook-form/ExpandingTextField';
import CustomFormProvider from '../../src/components/react-hook-form/provider/custom-form-provider';
import AutocompleteInput from '../../src/components/inputs/react-hook-form/autocomplete-inputs/autocomplete-input';
import TextInput from '../../src/components/inputs/react-hook-form/text-input';
import RadioInput from '../../src/components/inputs/react-hook-form/radio-input';
import SliderInput from '../../src/components/inputs/react-hook-form/slider-input';
import FloatInput from '../../src/components/inputs/react-hook-form/numbers/float-input';
import IntegerInput from '../../src/components/inputs/react-hook-form/numbers/integer-input';
import SelectInput from '../../src/components/inputs/react-hook-form/select-inputs/select-input';
import CheckboxInput from '../../src/components/inputs/react-hook-form/booleans/checkbox-input';
import SwitchInput from '../../src/components/inputs/react-hook-form/booleans/switch-input';
import SubmitButton from '../../src/components/inputs/react-hook-form/utils/submit-button';
import ExpandingTextField from '../../src/components/inputs/react-hook-form/ExpandingTextField';
import CustomFormProvider from '../../src/components/inputs/react-hook-form/provider/custom-form-provider';
import SelectClearable from '../../src/components/inputs/select-clearable';
import { useState } from 'react';

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"start": "vite demo/ --config vite.config.mts",
"start:open": "vite demo/ --config vite.config.mts --open",
"build": "tsc && vite build",
"build:prune": "npm install && tsc && vite build && npm prune --production",
"build:pack": "tsc && vite build && npm pack",
"prepublishOnly": "npm run build",
"test": "jest",
"test:coverage": "jest --coverage",
Expand Down
2 changes: 1 addition & 1 deletion src/components/TreeViewFinder/TreeViewFinder.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import {
ChevronRight as ChevronRightIcon,
ExpandMore as ExpandMoreIcon,
} from '@mui/icons-material';
import CancelButton from '../react-hook-form/utils/cancel-button';
import CancelButton from '../inputs/react-hook-form/utils/cancel-button';

// As a bunch of individual variables to try to make it easier
// to track that they are all used. Not sure, maybe group them in an object ?
Expand Down
9 changes: 6 additions & 3 deletions src/components/dialogs/custom-mui-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ import {
Grid,
LinearProgress,
} from '@mui/material';
import SubmitButton from '../react-hook-form/utils/submit-button';
import CancelButton from '../react-hook-form/utils/cancel-button';
import SubmitButton from '../inputs/react-hook-form/utils/submit-button';
import CancelButton from '../inputs/react-hook-form/utils/cancel-button';
import CustomFormProvider, {
MergedFormContextProps,
} from '../react-hook-form/provider/custom-form-provider';
} from '../inputs/react-hook-form/provider/custom-form-provider';
import * as yup from 'yup';

interface ICustomMuiDialog {
Expand All @@ -36,6 +36,7 @@ interface ICustomMuiDialog {
onCancel?: () => void;
children: React.ReactNode;
isDataFetching?: boolean;
language?: string;
}

const styles = {
Expand All @@ -61,6 +62,7 @@ const CustomMuiDialog: FunctionComponent<ICustomMuiDialog> = ({
removeOptional = false,
onCancel,
children,
language,
}) => {
const { handleSubmit } = formMethods;

Expand Down Expand Up @@ -90,6 +92,7 @@ const CustomMuiDialog: FunctionComponent<ICustomMuiDialog> = ({
{...formMethods}
validationSchema={formSchema}
removeOptional={removeOptional}
language={language}
>
<Dialog
sx={styles.dialogPaper}
Expand Down
4 changes: 2 additions & 2 deletions src/components/dialogs/description-modification-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

import { FunctionComponent, useCallback } from 'react';
import yup from '../../utils/yup-config';
import { FieldConstants } from '../filter/constants/field-constants';
import { FieldConstants } from '../../utils/field-constants';
import { useForm } from 'react-hook-form';
import { yupResolver } from '@hookform/resolvers/yup';
import { useSnackMessage } from '../../hooks/useSnackMessage';
import CustomMuiDialog from './custom-mui-dialog';
import ExpandingTextField from '../react-hook-form/ExpandingTextField';
import ExpandingTextField from '../inputs/react-hook-form/ExpandingTextField';
import { Box } from '@mui/material';

export interface IDescriptionModificationDialog {
Expand Down
2 changes: 1 addition & 1 deletion src/components/dialogs/popup-confirmation-dialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { DialogContentText } from '@mui/material';
import DialogActions from '@mui/material/DialogActions';
import Button from '@mui/material/Button';
import { FormattedMessage } from 'react-intl';
import CancelButton from '../react-hook-form/utils/cancel-button';
import CancelButton from '../inputs/react-hook-form/utils/cancel-button';
import { FunctionComponent } from 'react';

export interface PopupConfirmationDialogProps {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
useEffect,
useState,
} from 'react';
import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import {
backToFrontTweak,
frontToBackTweak,
Expand Down Expand Up @@ -99,12 +99,9 @@ export const CriteriaBasedFilterEditionDialog: FunctionComponent<
const [dataFetchStatus, setDataFetchStatus] = useState(FetchStatus.IDLE);

// default values are set via reset when we fetch data
const formMethods = {
...useForm({
resolver: yupResolver(formSchema),
}),
language: language,
};
const formMethods = useForm({
resolver: yupResolver(formSchema),
});

const {
reset,
Expand Down Expand Up @@ -181,6 +178,7 @@ export const CriteriaBasedFilterEditionDialog: FunctionComponent<
removeOptional={true}
disabledSave={!!nameError || !!isValidating}
isDataFetching={dataFetchStatus === FetchStatus.FETCHING}
language={language}
>
{isDataReady && (
<FilterForm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import FilterProperties, {
filterPropertiesYupSchema,
FreePropertiesTypes,
} from './filter-properties';
import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import yup from '../../../utils/yup-config';
import CriteriaBasedForm from './criteria-based-form';
import Grid from '@mui/material/Grid';
import { FunctionComponent } from 'react';
import {
getCriteriaBasedFormData,
getCriteriaBasedSchema,
} from '../utils/criteria-based-utils';
} from './criteria-based-filter-utils';
import { FILTER_EQUIPMENTS } from '../utils/filter-form-utils.ts';

export const criteriaBasedFilterSchema = getCriteriaBasedSchema({
[FieldConstants.ENERGY_SOURCE]: yup.string().nullable(),
Expand All @@ -33,6 +34,7 @@ const CriteriaBasedFilterForm: FunctionComponent = () => {
return (
<Grid container item spacing={1}>
<CriteriaBasedForm
equipments={FILTER_EQUIPMENTS}
defaultValues={
criteriaBasedFilterEmptyFormData[
FieldConstants.CRITERIA_BASED
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,69 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import { FreePropertiesTypes } from './filter-properties';
import {
PROPERTY_NAME,
PROPERTY_VALUES,
PROPERTY_VALUES_1,
PROPERTY_VALUES_2,
} from './filter-property';
import { getCriteriaBasedFormData } from '../utils/criteria-based-utils';
import { FilterType } from '../constants/filter-constants';
import { PredefinedProperties } from '../../../utils/types.ts';
import { PredefinedProperties } from '../../../utils/types';
import yup from '../../../utils/yup-config';
import {
DEFAULT_RANGE_VALUE,
getRangeInputDataForm,
getRangeInputSchema,
} from '../../inputs/react-hook-form/range-input';

export const getCriteriaBasedSchema = (extraFields: any) => ({
[FieldConstants.CRITERIA_BASED]: yup.object().shape({
[FieldConstants.COUNTRIES]: yup.array().of(yup.string()),
[FieldConstants.COUNTRIES_1]: yup.array().of(yup.string()),
[FieldConstants.COUNTRIES_2]: yup.array().of(yup.string()),
...getRangeInputSchema(FieldConstants.NOMINAL_VOLTAGE),
...getRangeInputSchema(FieldConstants.NOMINAL_VOLTAGE_1),
...getRangeInputSchema(FieldConstants.NOMINAL_VOLTAGE_2),
...getRangeInputSchema(FieldConstants.NOMINAL_VOLTAGE_3),
...extraFields,
}),
});
export const getCriteriaBasedFormData = (
criteriaValues: any,
extraFields: any
) => ({
[FieldConstants.CRITERIA_BASED]: {
[FieldConstants.COUNTRIES]:
criteriaValues?.[FieldConstants.COUNTRIES] ?? [],
[FieldConstants.COUNTRIES_1]:
criteriaValues?.[FieldConstants.COUNTRIES_1] ?? [],
[FieldConstants.COUNTRIES_2]:
criteriaValues?.[FieldConstants.COUNTRIES_2] ?? [],
...getRangeInputDataForm(
FieldConstants.NOMINAL_VOLTAGE,
criteriaValues?.[FieldConstants.NOMINAL_VOLTAGE] ??
DEFAULT_RANGE_VALUE
),
...getRangeInputDataForm(
FieldConstants.NOMINAL_VOLTAGE_1,
criteriaValues?.[FieldConstants.NOMINAL_VOLTAGE_1] ??
DEFAULT_RANGE_VALUE
),
...getRangeInputDataForm(
FieldConstants.NOMINAL_VOLTAGE_2,
criteriaValues?.[FieldConstants.NOMINAL_VOLTAGE_2] ??
DEFAULT_RANGE_VALUE
),
...getRangeInputDataForm(
FieldConstants.NOMINAL_VOLTAGE_3,
criteriaValues?.[FieldConstants.NOMINAL_VOLTAGE_3] ??
DEFAULT_RANGE_VALUE
),
...extraFields,
},
});

/**
* Transform
Expand Down
14 changes: 8 additions & 6 deletions src/components/filter/criteria-based/criteria-based-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,21 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import { useFormContext, useWatch } from 'react-hook-form';
import { Grid } from '@mui/material';
import SelectInput from '../../react-hook-form/select-inputs/select-input';
import InputWithPopupConfirmation from '../../react-hook-form/select-inputs/input-with-popup-confirmation';
import SelectInput from '../../inputs/react-hook-form/select-inputs/select-input';
import InputWithPopupConfirmation from '../../inputs/react-hook-form/select-inputs/input-with-popup-confirmation';
import { FunctionComponent } from 'react';
import { FILTER_EQUIPMENTS } from '../utils/criteria-based-utils.ts';
import { FormEquipment } from '../utils/filter-form-utils';

export interface CriteriaBasedFormProps {
equipments: Record<string, FormEquipment>;
defaultValues: Record<string, any>;
}

const CriteriaBasedForm: FunctionComponent<CriteriaBasedFormProps> = ({
equipments,
defaultValues,
}) => {
const { getValues, setValue } = useFormContext();
Expand Down Expand Up @@ -48,7 +50,7 @@ const CriteriaBasedForm: FunctionComponent<CriteriaBasedFormProps> = ({
<InputWithPopupConfirmation
Input={SelectInput}
name={FieldConstants.EQUIPMENT_TYPE}
options={Object.values(FILTER_EQUIPMENTS)}
options={Object.values(equipments)}
label={'equipmentType'}
shouldOpenPopup={openConfirmationPopup}
resetOnConfirmation={handleResetOnConfirmation}
Expand All @@ -57,7 +59,7 @@ const CriteriaBasedForm: FunctionComponent<CriteriaBasedFormProps> = ({
/>
</Grid>
{watchEquipmentType &&
FILTER_EQUIPMENTS[watchEquipmentType].fields.map(
equipments[watchEquipmentType].fields.map(
(equipment: any, index: number) => {
const EquipmentForm = equipment.renderer;
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

import ErrorInput from '../../react-hook-form/error-management/error-input';
import FieldErrorAlert from '../../react-hook-form/error-management/field-error-alert';
import ErrorInput from '../../inputs/react-hook-form/error-management/error-input';
import FieldErrorAlert from '../../inputs/react-hook-form/error-management/field-error-alert';
import { Button, Grid, ListItem } from '@mui/material';
import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import { useFieldArray, useWatch } from 'react-hook-form';
import { FormattedMessage } from 'react-intl';
import { FreePropertiesTypes } from './filter-properties';
Expand All @@ -20,7 +20,7 @@ import FilterProperty, {
} from './filter-property';
import AddIcon from '@mui/icons-material/Add';
import { FunctionComponent, useMemo } from 'react';
import { Hvdc, Line } from '../constants/equipment-types';
import { Hvdc, Line } from '../../../utils/equipment-types';

import { PredefinedProperties } from '../../../utils/types.ts';

Expand Down
4 changes: 2 additions & 2 deletions src/components/filter/criteria-based/filter-properties.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import {
Substation,
TwoWindingTransfo,
VoltageLevel,
} from '../constants/equipment-types';
} from '../../../utils/equipment-types';
import { areArrayElementsUnique } from '../../../utils/functions';
import { FieldConstants } from '../constants/field-constants';
import { FieldConstants } from '../../../utils/field-constants';
import yup from '../../../utils/yup-config';
import FilterFreeProperties from './filter-free-properties';
import {
Expand Down
6 changes: 3 additions & 3 deletions src/components/filter/criteria-based/filter-property.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import DeleteIcon from '@mui/icons-material/Delete';
import IconButton from '@mui/material/IconButton';
import Grid from '@mui/material/Grid';
import { useFormContext, useWatch } from 'react-hook-form';
import AutocompleteInput from '../../react-hook-form/autocomplete-input';
import MultipleAutocompleteInput from '../../react-hook-form/autocomplete-inputs/multiple-autocomplete-input';
import { FieldConstants } from '../constants/field-constants';
import AutocompleteInput from '../../inputs/react-hook-form/autocomplete-inputs/autocomplete-input';
import MultipleAutocompleteInput from '../../inputs/react-hook-form/autocomplete-inputs/multiple-autocomplete-input';
import { FieldConstants } from '../../../utils/field-constants';

import { PredefinedProperties } from '../../../utils/types.ts';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export enum RULES {
INCORRECT_RULE = 'incorrectRule',
BETWEEN_RULE = 'betweenRule',
}

export const EXPERT_FILTER_EQUIPMENTS = {
SUBSTATION: {
id: 'SUBSTATION',
Expand Down Expand Up @@ -583,20 +584,20 @@ export const fields: Record<string, Field[]> = {
TWO_WINDINGS_TRANSFORMER: [
FIELDS_OPTIONS.ID,
FIELDS_OPTIONS.NAME,
FIELDS_OPTIONS.COUNTRY,
FIELDS_OPTIONS.VOLTAGE_LEVEL_ID_1,
FIELDS_OPTIONS.VOLTAGE_LEVEL_ID_2,
FIELDS_OPTIONS.NOMINAL_VOLTAGE_1,
FIELDS_OPTIONS.NOMINAL_VOLTAGE_2,
FIELDS_OPTIONS.RATED_VOLTAGE_1,
FIELDS_OPTIONS.RATED_VOLTAGE_2,
FIELDS_OPTIONS.CONNECTED_1,
FIELDS_OPTIONS.CONNECTED_2,
FIELDS_OPTIONS.RATED_S,
FIELDS_OPTIONS.SERIE_RESISTANCE,
FIELDS_OPTIONS.SERIE_REACTANCE,
FIELDS_OPTIONS.MAGNETIZING_CONDUCTANCE,
FIELDS_OPTIONS.MAGNETIZING_SUSCEPTANCE,
FIELDS_OPTIONS.CONNECTED_1,
FIELDS_OPTIONS.CONNECTED_2,
FIELDS_OPTIONS.VOLTAGE_LEVEL_ID_1,
FIELDS_OPTIONS.VOLTAGE_LEVEL_ID_2,
FIELDS_OPTIONS.COUNTRY,
FIELDS_OPTIONS.HAS_RATIO_TAP_CHANGER,
FIELDS_OPTIONS.LOAD_TAP_CHANGING_CAPABILITIES,
FIELDS_OPTIONS.RATIO_REGULATION_MODE,
Expand Down Expand Up @@ -635,6 +636,7 @@ export const fields: Record<string, Field[]> = {
LOAD: [
FIELDS_OPTIONS.ID,
FIELDS_OPTIONS.NAME,
FIELDS_OPTIONS.LOAD_TYPE,
FIELDS_OPTIONS.COUNTRY,
FIELDS_OPTIONS.VOLTAGE_LEVEL_ID,
FIELDS_OPTIONS.NOMINAL_VOLTAGE,
Expand Down

0 comments on commit 64aa533

Please sign in to comment.