From c3398948ffa608d132503ab94790857f8d53891c Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 29 Aug 2022 11:41:21 +0300 Subject: Fix more types in components --- package-lock.json | 11 +++++++++++ package.json | 3 ++- src/Datetime.tsx | 10 +++++++--- src/Geshem.tsx | 2 +- src/Slider.tsx | 23 ++++++++++++++++------- 5 files changed, 37 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae5c8a8..3669ffb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", + "@types/luxon": "^3.0.0", "@types/node": "^16.11.56", "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", @@ -3818,6 +3819,11 @@ "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, + "node_modules/@types/luxon": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.0.0.tgz", + "integrity": "sha512-Lx+EZoJxUKw4dp8uei9XiUVNlgkYmax5+ovqt6Xf3LzJOnWhlfJw/jLBmqfGVwOP/pDr4HT8bI1WtxK0IChMLw==" + }, "node_modules/@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", @@ -21384,6 +21390,11 @@ "integrity": "sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==", "dev": true }, + "@types/luxon": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.0.0.tgz", + "integrity": "sha512-Lx+EZoJxUKw4dp8uei9XiUVNlgkYmax5+ovqt6Xf3LzJOnWhlfJw/jLBmqfGVwOP/pDr4HT8bI1WtxK0IChMLw==" + }, "@types/mime": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", diff --git a/package.json b/package.json index 7fc7111..0a02f1f 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", + "@types/luxon": "^3.0.0", "@types/node": "^16.11.56", "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", @@ -58,4 +59,4 @@ "serverless-python-requirements": "^5.0.1" }, "proxy": "https://imgs.geshem.space/" -} \ No newline at end of file +} diff --git a/src/Datetime.tsx b/src/Datetime.tsx index 9807211..84009a7 100644 --- a/src/Datetime.tsx +++ b/src/Datetime.tsx @@ -1,12 +1,16 @@ import React from "react"; import { DateTime as LuxonDateTime } from "luxon"; -function DateTime(props) { - let { images, slider } = props; +interface DateTimeProps { + images: string[], + slider: number +} + +function DateTime({ images, slider }: DateTimeProps) { let datetime = null; if (images.length > 0) { - const ds = images[slider].substr(5, 13); + const ds = images[slider].substring(5, 18); datetime = LuxonDateTime.fromFormat(ds, "yyyyMMdd/HHmm", { zone: "utc", }).setZone("Asia/Jerusalem"); diff --git a/src/Geshem.tsx b/src/Geshem.tsx index a74af61..3664546 100644 --- a/src/Geshem.tsx +++ b/src/Geshem.tsx @@ -28,7 +28,7 @@ function Geshem({ date }: GeshemProps) { const [playback] = useState( date || new URL(window.location.toString()).searchParams.get("history") || - false + undefined ); const [slider, setSlider] = useState(playback ? 143 : 9); diff --git a/src/Slider.tsx b/src/Slider.tsx index 9e86f66..64edb99 100644 --- a/src/Slider.tsx +++ b/src/Slider.tsx @@ -1,7 +1,16 @@ import React from "react"; -import RcSlider from "rc-slider"; +import RcSlider, { SliderProps, SliderRef } from 'rc-slider/lib/Slider'; -function Slider(props) { +// use workaround from: https://github.com/react-component/slider/issues/835#issuecomment-1201805736 +const CustomSlider = RcSlider as React.ForwardRefExoticComponent & React.RefAttributes>; + +interface GeshemSliderProps { + playback?: string, + slider: number, + setSlider: React.Dispatch> +} + +function Slider({ playback, slider, setSlider }: GeshemSliderProps) { const handleStyle = { height: 40, width: 40, @@ -21,14 +30,14 @@ function Slider(props) { return (
- props.setSlider(val)} + onChange={val => setSlider(val)} />
); -- cgit v1.3.1