BalonRateInfoOverview

mail@pastecode.io avatarunknown
plain_text
25 days ago
2.8 kB
1
Indexable
Never
import { ReactElement } from 'react';
import { UseFormReturn } from 'react-hook-form';
import { fetchEntitet, fetchVrstaKredita } from 'src/api';
import useSWR from 'swr';

import { Box, Theme, Typography } from '@mui/material';

import {
  DateInput,
  Input,
  NumberInput,
  Overview,
  OverviewForm,
  Select,
} from '@shared/components';
import { OverviewFormBody } from '@shared/components/OverviewForm';
import { replaceUndefinedValues } from '@shared/utils/replaceObjectNullValues';

interface ITabDataProps {
  label: string | ReactElement;
  value: any;
  editField?: ReactElement | ReactElement[];
}

const getInfo1 = (
  data: Record<string, any>,
  theme: Theme,
  options?: Record<string, any>
): ITabDataProps[] => [
  {
    label: 'Ime',
    value: data?.ime || '',
    editField: <Input name="ime" />,
  },
  {
    label: 'Prezime',
    value: data?.prezime || '',
    editField: <Input name="prezime" />,
  },
  {
    label: 'Jmbg',
    value: data?.jmbg || '-',
    editField: <Input name="jmbg" />,
  },
];



export const BalonRateOverview1 = ({
  theme,
  methods,
  data,
  zahtjevSelectData,
}: any) => {
  return (
    <OverviewForm onSubmit={(_) => {}} methods={methods}>
      <OverviewFormBody
        key={JSON.stringify(data)}
        data={replaceUndefinedValues(
          getInfo1.apply(null, [data, theme, zahtjevSelectData])
        )}
      />
    </OverviewForm>
  );
};


export const BalonRateOverview = ({
  theme,
  methods,
  data,
  zahtjevSelectData,
}: any) => {
  return (
    <OverviewForm onSubmit={(_) => {}} methods={methods}>
      <Typography variant="h1" pl={2}>
        Podaci
      </Typography>
      <Box
        display="flex"
        flexDirection={{ xs: 'column', lg: 'row' }}
        width="100%"
        justifyContent="space-between"
      >
        <Box width="100%" marginRight={10}>
          <OverviewFormBody
            data={replaceUndefinedValues(
              getInfo1.apply(null, [data, theme, zahtjevSelectData])
            )}
          />
        </Box>

      </Box>
    </OverviewForm>
  );
};

const OverviewWrapper = ({
  theme,
  data,
  methods,
}: {
  theme: Theme;
  data: Record<string, any>;
  methods: UseFormReturn<any>;
}) => {
  const { data: vrstaKreditaData } = useSWR(
    `vrstaKreditaData`,
    fetchVrstaKredita,
    {
      fallbackData: [],
    }
  );

  const { data: entitetData } = useSWR(`entitetData`, fetchEntitet, {
    fallbackData: [],
  });

  return (
    <Overview
      header={<></>}
      flexRow
      sxBox={{ mr: 4, flex: 0.6, position: 'relative' }}
    >
      <BalonRateOverview
        theme={theme}
        methods={methods}
        data={data}
        zahtjevSelectData={{
          vrstaKreditaData,
          entitetData,
        }}
      />
    </Overview>

   
  );
};

export default OverviewWrapper;