diff --git a/package-lock.json b/package-lock.json index ca1d112e..996b16ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@types/node": "^20.8.8", "@types/react": "^18.2.31", "@types/react-dom": "^18.2.14", + "@types/react-modal": "^3.16.3", "bootstrap": ">=5.1.3", "codemirror": "^5.65.3", "cross-env": "^7.0.3", @@ -3589,6 +3590,14 @@ "@types/react": "*" } }, + "node_modules/@types/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-redux": { "version": "7.1.20", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", @@ -27733,6 +27742,14 @@ "@types/react": "*" } }, + "@types/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==", + "requires": { + "@types/react": "*" + } + }, "@types/react-redux": { "version": "7.1.20", "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", diff --git a/package.json b/package.json index 8ccc28e7..b77616b8 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@types/node": "^20.8.8", "@types/react": "^18.2.31", "@types/react-dom": "^18.2.14", + "@types/react-modal": "^3.16.3", "bootstrap": ">=5.1.3", "codemirror": "^5.65.3", "cross-env": "^7.0.3", diff --git a/src/components/common/ImageSelector.js b/src/components/common/ImageSelector.tsx similarity index 67% rename from src/components/common/ImageSelector.js rename to src/components/common/ImageSelector.tsx index 84aa7bf3..ff6dcfa3 100644 --- a/src/components/common/ImageSelector.js +++ b/src/components/common/ImageSelector.tsx @@ -3,11 +3,19 @@ import ReactModal from 'react-modal'; import { Container } from 'reactstrap'; import '../../styles/ImageSelector.scss'; -const ImageSelector = function (props) { - // Extracting all data from props - const { - isOpen, closeModal, maxWidth, thumbnailPreview, icons, error, children, - } = props; +interface ImageSelectorProps { + isOpen: boolean; + closeModal: () => void; + maxWidth: number; + thumbnailPreview?: React.ReactElement | null; // either element or null + icons: any; // array of
elements + error: string; // error message + children: React.ReactNode; +} + +const ImageSelector = function ({ + isOpen, closeModal, maxWidth, thumbnailPreview, icons, error, children, +}: ImageSelectorProps) { return (