UpdateModal.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { Modal, ModalBody, ModalCloseButton, ModalContent, ModalHeader, ModalOverlay } from '@chakra-ui/react';
  2. import React, { useEffect } from 'react';
  3. import useSWR from 'swr';
  4. import fetcher from '../../../core/fetcher';
  5. import { AppConfig } from '../../../core/types';
  6. import InstallForm from './InstallForm';
  7. interface IProps {
  8. app: AppConfig;
  9. isOpen: boolean;
  10. onClose: () => void;
  11. onSubmit: (values: Record<string, any>) => void;
  12. }
  13. const UpdateModal: React.FC<IProps> = ({ app, isOpen, onClose, onSubmit }) => {
  14. const { data, mutate } = useSWR<Record<string, string>>(`/apps/form/${app.id}`, fetcher, { refreshInterval: 10 });
  15. useEffect(() => {
  16. mutate({}, true);
  17. }, [isOpen, mutate]);
  18. return (
  19. <Modal isOpen={isOpen} onClose={onClose}>
  20. <ModalOverlay />
  21. <ModalContent>
  22. <ModalHeader>Update {app.name} config</ModalHeader>
  23. <ModalCloseButton />
  24. <ModalBody>
  25. <InstallForm onSubmit={onSubmit} formFields={app.form_fields} initalValues={data} />
  26. </ModalBody>
  27. </ModalContent>
  28. </Modal>
  29. );
  30. };
  31. export default UpdateModal;