react-timezone-range-picker 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/AroundTimePanel/index.d.ts +8 -0
- package/dist/AroundTimePanel/index.d.ts.map +1 -0
- package/dist/AroundTimePanel/util.d.ts +16 -0
- package/dist/AroundTimePanel/util.d.ts.map +1 -0
- package/dist/Footer/index.d.ts +2 -0
- package/dist/Footer/index.d.ts.map +1 -0
- package/dist/Provider/PopoverProvider.d.ts +12 -0
- package/dist/Provider/PopoverProvider.d.ts.map +1 -0
- package/dist/RelativeTimePanel/index.d.ts +7 -0
- package/dist/RelativeTimePanel/index.d.ts.map +1 -0
- package/dist/RelativeTimePanel/timeOptions.d.ts +9 -0
- package/dist/RelativeTimePanel/timeOptions.d.ts.map +1 -0
- package/dist/Sidebar/index.d.ts +10 -0
- package/dist/Sidebar/index.d.ts.map +1 -0
- package/dist/StartEndTimePanel/index.d.ts +8 -0
- package/dist/StartEndTimePanel/index.d.ts.map +1 -0
- package/dist/TimezonePanel/components/TimezoneList/index.d.ts +14 -0
- package/dist/TimezonePanel/components/TimezoneList/index.d.ts.map +1 -0
- package/dist/TimezonePanel/components/TimezoneSearch/index.d.ts +8 -0
- package/dist/TimezonePanel/components/TimezoneSearch/index.d.ts.map +1 -0
- package/dist/TimezonePanel/index.d.ts +8 -0
- package/dist/TimezonePanel/index.d.ts.map +1 -0
- package/dist/TimezonePanel/util/getBrowserTimezone.d.ts +8 -0
- package/dist/TimezonePanel/util/getBrowserTimezone.d.ts.map +1 -0
- package/dist/TimezonePanel/util/getTimezones.d.ts +8 -0
- package/dist/TimezonePanel/util/getTimezones.d.ts.map +1 -0
- package/dist/TimezonePanel/util/longTzName.d.ts +2 -0
- package/dist/TimezonePanel/util/longTzName.d.ts.map +1 -0
- package/dist/TimezonePanel/util/parseOffest.d.ts +2 -0
- package/dist/TimezonePanel/util/parseOffest.d.ts.map +1 -0
- package/dist/TimezoneRangePicker/index.d.ts +9 -0
- package/dist/TimezoneRangePicker/index.d.ts.map +1 -0
- package/dist/hooks/useAppTheme.d.ts +5 -0
- package/dist/hooks/useAppTheme.d.ts.map +1 -0
- package/dist/index.cjs.js +63 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +4 -36
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +2301 -0
- package/dist/index.es.js.map +1 -0
- package/dist/interfaces/index.d.ts +21 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/dist/test.setup.d.ts +2 -0
- package/dist/test.setup.d.ts.map +1 -0
- package/dist/util/dateTime.d.ts +23 -0
- package/dist/util/dateTime.d.ts.map +1 -0
- package/package.json +11 -10
- package/dist/index.css +0 -80
- package/dist/index.css.map +0 -1
- package/dist/index.d.mts +0 -36
- package/dist/index.js +0 -1007
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -997
- package/dist/index.mjs.map +0 -1
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/react-use@17.6.0_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/react-use/esm/useTimeoutFn.js","../../../node_modules/.pnpm/react-use@17.6.0_react-dom@19.1.1_react@19.1.1__react@19.1.1/node_modules/react-use/esm/useDebounce.js","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/TimezonePanel/components/TimezoneList/index.module.css","../src/hooks/useAppTheme.ts","../src/TimezonePanel/components/TimezoneList/index.tsx","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/defaultAttributes.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/createReactComponent.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconCalendar.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconChevronRight.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconClock.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconFilter2.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconWorld.ts","../../../node_modules/.pnpm/@tabler+icons-react@3.35.0_react@19.1.1/node_modules/@tabler/icons-react/src/icons/IconCalendarWeekFilled.ts","../src/TimezonePanel/components/TimezoneSearch/index.tsx","../src/TimezonePanel/util/longTzName.ts","../src/TimezonePanel/util/parseOffest.ts","../src/TimezonePanel/util/getTimezones.ts","../src/TimezonePanel/index.module.css","../src/styles/index.module.css","../src/TimezonePanel/util/getBrowserTimezone.ts","../src/Footer/index.tsx","../src/TimezonePanel/index.tsx","../src/Sidebar/index.module.css","../src/RelativeTimePanel/timeOptions.ts","../src/RelativeTimePanel/index.module.css","../src/RelativeTimePanel/index.tsx","../src/Sidebar/index.tsx","../src/util/dateTime.ts","../src/AroundTimePanel/util.ts","../src/AroundTimePanel/index.tsx","../src/StartEndTimePanel/index.tsx","../src/TimezoneRangePicker/index.tsx"],"names":["useRef","useCallback","useEffect","useMantineColorScheme","useMantineTheme","jsxs","Flex","jsx","Text","forwardRef","createElement","__iconNode","Input","timezone","dayjs","utc","Button","useState","useMemo","selectedTimezone","Box","Fragment","form","useForm","DatePickerInput","TimeInput","Select","Panel","Popover"],"mappings":"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","file":"index.js","sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nexport default function useTimeoutFn(fn, ms) {\n if (ms === void 0) { ms = 0; }\n var ready = useRef(false);\n var timeout = useRef();\n var callback = useRef(fn);\n var isReady = useCallback(function () { return ready.current; }, []);\n var set = useCallback(function () {\n ready.current = false;\n timeout.current && clearTimeout(timeout.current);\n timeout.current = setTimeout(function () {\n ready.current = true;\n callback.current();\n }, ms);\n }, [ms]);\n var clear = useCallback(function () {\n ready.current = null;\n timeout.current && clearTimeout(timeout.current);\n }, []);\n // update ref when function changes\n useEffect(function () {\n callback.current = fn;\n }, [fn]);\n // set on mount, clear on unmount\n useEffect(function () {\n set();\n return clear;\n }, [ms]);\n return [isReady, clear, set];\n}\n","import { useEffect } from 'react';\nimport useTimeoutFn from './useTimeoutFn';\nexport default function useDebounce(fn, ms, deps) {\n if (ms === void 0) { ms = 0; }\n if (deps === void 0) { deps = []; }\n var _a = useTimeoutFn(fn, ms), isReady = _a[0], cancel = _a[1], reset = _a[2];\n useEffect(reset, deps);\n return [isReady, cancel];\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;",".row {\n padding: 0.4rem;\n}\n\n.row-dark {\n cursor: pointer;\n &:hover {\n background-color: #3a3a3a;\n }\n}\n\n.row-light {\n cursor: pointer;\n &:hover {\n background-color: #f3f4f6;\n }\n}\n\n.row-selected-dark {\n background-color: #5a5a5a;\n font-weight: 600;\n &:hover {\n background-color: #5a5a5a;\n }\n}\n\n.row-selected-light {\n background-color: #f3f4f6;\n font-weight: 600;\n &:hover {\n background-color: #f3f4f6;\n }\n}\n","import { useMantineColorScheme, useMantineTheme } from \"@mantine/core\";\n\nexport const useAppTheme = () => {\n const { colorScheme } = useMantineColorScheme();\n const theme = useMantineTheme();\n\n return { colorScheme, theme, appTheme: theme.other.appTheme[colorScheme] };\n};\n","import { Flex, Text } from \"@mantine/core\";\nimport { FC } from \"react\";\nimport clsx from \"clsx\";\nimport styled from \"./index.module.css\";\nimport { useAppTheme } from \"../../../hooks/useAppTheme\";\nimport { TimezoneData } from \"packages/ui/src/interfaces\";\n\ninterface ITimezoneList {\n name: string | null;\n longName: string | null;\n currentTime: string;\n utcOffset: string | null;\n selectedTimezone: TimezoneData | null;\n isBrowserTimezone?: boolean;\n handleTimezoneMouseClick?: (selectedTimezone: TimezoneData) => void;\n}\n\nexport const TimezoneList: FC<ITimezoneList> = ({\n name,\n longName,\n currentTime,\n utcOffset,\n selectedTimezone,\n isBrowserTimezone = false,\n handleTimezoneMouseClick = undefined,\n}) => {\n const { colorScheme } = useAppTheme();\n\n const onClick = () => {\n if (isBrowserTimezone) return;\n\n handleTimezoneMouseClick!({\n name,\n longName,\n utcOffset,\n });\n };\n\n return (\n <Flex\n direction=\"column\"\n className={clsx(\n styled.row,\n isBrowserTimezone\n ? undefined\n : colorScheme === \"dark\"\n ? styled[\"row-dark\"]\n : styled[\"row-light\"],\n selectedTimezone?.name === name\n ? colorScheme === \"dark\"\n ? styled[\"row-selected-dark\"]\n : styled[\"row-selected-light\"]\n : undefined\n )}\n onClick={onClick}\n >\n <Flex justify=\"space-between\">\n <Text size=\"sm\">{name}</Text>\n <Text size=\"sm\">\n {currentTime} • UTC{utcOffset}\n </Text>\n </Flex>\n <Text size=\"sm\">{longName}</Text>\n </Flex>\n );\n};\n","export default {\n outline: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n filled: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n stroke: 'none',\n },\n};\n","import { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport type { IconNode, IconProps, Icon } from './types';\n\nconst createReactComponent = (\n type: 'outline' | 'filled',\n iconName: string,\n iconNamePascal: string,\n iconNode: IconNode,\n) => {\n const Component = forwardRef<Icon, IconProps>(\n (\n { color = 'currentColor', size = 24, stroke = 2, title, className, children, ...rest }: IconProps,\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes[type],\n width: size,\n height: size,\n className: [`tabler-icon`, `tabler-icon-${iconName}`, className].join(' '),\n ...(type === 'filled'\n ? {\n fill: color,\n }\n : {\n strokeWidth: stroke,\n stroke: color,\n }),\n ...rest,\n },\n [\n title && createElement('title', { key: 'svg-title' }, title),\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n );\n\n Component.displayName = `${iconNamePascal}`;\n\n return Component;\n};\n\nexport default createReactComponent;\n","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M16 3v4\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M8 3v4\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M4 11h16\",\"key\":\"svg-3\"}],[\"path\",{\"d\":\"M11 15h1\",\"key\":\"svg-4\"}],[\"path\",{\"d\":\"M12 15v3\",\"key\":\"svg-5\"}]]\n\nconst IconCalendar = createReactComponent('outline', 'calendar', 'Calendar', __iconNode);\n\nexport default IconCalendar;","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M9 6l6 6l-6 6\",\"key\":\"svg-0\"}]]\n\nconst IconChevronRight = createReactComponent('outline', 'chevron-right', 'ChevronRight', __iconNode);\n\nexport default IconChevronRight;","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M12 7v5l3 3\",\"key\":\"svg-1\"}]]\n\nconst IconClock = createReactComponent('outline', 'clock', 'Clock', __iconNode);\n\nexport default IconClock;","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M4 6h16\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M6 12h12\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M9 18h6\",\"key\":\"svg-2\"}]]\n\nconst IconFilter2 = createReactComponent('outline', 'filter-2', 'Filter2', __iconNode);\n\nexport default IconFilter2;","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M3.6 9h16.8\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M3.6 15h16.8\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M11.5 3a17 17 0 0 0 0 18\",\"key\":\"svg-3\"}],[\"path\",{\"d\":\"M12.5 3a17 17 0 0 1 0 18\",\"key\":\"svg-4\"}]]\n\nconst IconWorld = createReactComponent('outline', 'world', 'World', __iconNode);\n\nexport default IconWorld;","import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M16 2c.183 0 .355 .05 .502 .135l.033 .02c.28 .177 .465 .49 .465 .845v1h1a3 3 0 0 1 2.995 2.824l.005 .176v12a3 3 0 0 1 -2.824 2.995l-.176 .005h-12a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-12a3 3 0 0 1 2.824 -2.995l.176 -.005h1v-1a1 1 0 0 1 .514 -.874l.093 -.046l.066 -.025l.1 -.029l.107 -.019l.12 -.007q .083 0 .161 .013l.122 .029l.04 .012l.06 .023c.328 .135 .568 .44 .61 .806l.007 .117v1h6v-1a1 1 0 0 1 1 -1m3 7h-14v9.625c0 .705 .386 1.286 .883 1.366l.117 .009h12c.513 0 .936 -.53 .993 -1.215l.007 -.16z\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M9.015 13a1 1 0 0 1 -1 1a1.001 1.001 0 1 1 -.005 -2c.557 0 1.005 .448 1.005 1\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M13.015 13a1 1 0 0 1 -1 1a1.001 1.001 0 1 1 -.005 -2c.557 0 1.005 .448 1.005 1\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M17.02 13a1 1 0 0 1 -1 1a1.001 1.001 0 1 1 -.005 -2c.557 0 1.005 .448 1.005 1\",\"key\":\"svg-3\"}],[\"path\",{\"d\":\"M12.02 15a1 1 0 0 1 0 2a1.001 1.001 0 1 1 -.005 -2z\",\"key\":\"svg-4\"}],[\"path\",{\"d\":\"M9.015 16a1 1 0 0 1 -1 1a1.001 1.001 0 1 1 -.005 -2c.557 0 1.005 .448 1.005 1\",\"key\":\"svg-5\"}]]\n\nconst IconCalendarWeekFilled = createReactComponent('filled', 'calendar-week-filled', 'CalendarWeekFilled', __iconNode);\n\nexport default IconCalendarWeekFilled;","import { Input } from \"@mantine/core\";\nimport { IconFilter2 } from \"@tabler/icons-react\";\nimport { Dispatch, FC, SetStateAction } from \"react\";\n\ninterface ITimezoneSearch {\n searchText: string;\n setSearchText: Dispatch<SetStateAction<string>>;\n}\n\nexport const TimezoneSearch: FC<ITimezoneSearch> = ({ searchText, setSearchText }) => {\n return (\n <Input\n placeholder=\"Timezone search (Asia, Tokyo, +09:00, etc)\"\n leftSection={<IconFilter2 stroke={2} />}\n value={searchText}\n onChange={(e) => setSearchText(e.currentTarget.value)}\n />\n );\n};\n","export const longTzName = (timezone: string, locale = \"en-US\") => {\n return (\n new Intl.DateTimeFormat(locale, {\n timeZone: timezone,\n timeZoneName: \"long\",\n })\n .formatToParts(new Date())\n .find((p) => p.type === \"timeZoneName\")?.value || \"\"\n );\n};\n","export const parseOffset = (offsetUtc: string) => {\n const sign = offsetUtc[0] === \"-\" ? -1 : 1;\n const [hours, minutes] = offsetUtc.slice(1).split(\":\").map(Number);\n return sign * (hours * 60 + minutes);\n};\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport { longTzName } from \"./longTzName\";\nimport { parseOffset } from \"./parseOffest\";\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const getTimezones = () => {\n const timezones = Intl.supportedValuesOf(\"timeZone\");\n\n return timezones\n .map((timezone) => {\n const offset = dayjs().tz(timezone).format(\"Z\");\n\n return {\n name: timezone,\n longName: longTzName(timezone),\n currentTime: dayjs().tz(timezone).format(\"h:mm A\"),\n utcOffset: offset,\n offsetMinutes: parseOffset(offset),\n };\n })\n .sort((a, b) => a.offsetMinutes - b.offsetMinutes);\n};\n",".timezone-panel-container {\n height: 100%;\n}\n\n.list-container {\n overflow-y: auto;\n height: inherit;\n margin-top: 0.5rem;\n}\n",".form-container {\n display: flex;\n flex: 2;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n}\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport timezone from \"dayjs/plugin/timezone\";\nimport { longTzName } from \"./longTzName\";\nimport { parseOffset } from \"./parseOffest\";\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\nexport const getBrowserTimezone = () => {\n const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const offset = dayjs().tz(tz).format(\"Z\");\n\n return {\n name: tz,\n longName: longTzName(tz),\n currentTime: dayjs().tz(tz).format(\"h:mm A\"),\n utcOffset: offset,\n offsetMinutes: parseOffset(offset),\n };\n};\n","import { Button, Flex } from \"@mantine/core\";\nimport { useAppTheme } from \"../hooks/useAppTheme\";\nimport { FC } from \"react\";\n\ninterface IFooter {\n handleApplyClick?: () => void;\n handleCancelClick?: () => void;\n}\n\nexport const Footer: FC<IFooter> = ({ handleCancelClick }) => {\n const { theme } = useAppTheme();\n\n return (\n <Flex justify={\"flex-end\"}>\n <Flex columnGap={16}>\n <Button size=\"xs\" variant=\"subtle\" color={theme.primaryColor} onClick={handleCancelClick}>\n Cancel\n </Button>\n <Button type=\"submit\" size=\"xs\" color={theme.primaryColor}>\n Apply\n </Button>\n </Flex>\n </Flex>\n );\n};\n","import { FC, FormEvent, useEffect, useMemo, useState } from \"react\";\nimport { Box, Flex, Text } from \"@mantine/core\";\nimport { useDebounce } from \"react-use\";\nimport { TimezoneList } from \"./components/TimezoneList\";\nimport { TimezoneSearch } from \"./components/TimezoneSearch\";\nimport { getTimezones } from \"./util/getTimezones\";\nimport styled from \"./index.module.css\";\nimport commonStyled from \"../styles/index.module.css\";\nimport { getBrowserTimezone } from \"./util/getBrowserTimezone\";\nimport { Footer } from \"../Footer\";\nimport { TimezoneData, TzRange } from \"../interfaces\";\nimport dayjs from \"dayjs\";\n\n// TODO - Should pass timezone value from playground app as our selection value\n// TODO - Should also have a way in which it shows selected/default timezone (by browser)\n\ninterface ITimezoneDataInternal {\n name: string;\n longName: string;\n currentTime: string;\n utcOffset: string;\n offsetMinutes: number;\n}\n\ninterface ITimezonePanel {\n tzRange: TzRange;\n}\n\nconst TimezonePanel: FC<ITimezonePanel> = ({ tzRange }) => {\n const [selectedTimezone, setSelectedTimezone] = useState<TimezoneData | null>(tzRange.timezone);\n const [filteredTimezones, setFilteredTimezones] = useState<ITimezoneDataInternal[]>([]);\n const [searchText, setSearchText] = useState(\"\");\n\n const timezones = useMemo(() => getTimezones(), []);\n\n useEffect(() => {\n setFilteredTimezones(timezones);\n }, []);\n\n useDebounce(\n () => {\n if (searchText === \"\") {\n setFilteredTimezones(timezones);\n return;\n }\n\n setFilteredTimezones(\n timezones.filter(\n (timezone) =>\n timezone.name.toLowerCase().includes(searchText.toLocaleLowerCase()) ||\n timezone.longName.toLowerCase().includes(searchText.toLocaleLowerCase()) ||\n timezone.currentTime.toLowerCase().includes(searchText.toLocaleLowerCase()) ||\n timezone.utcOffset.toLowerCase().includes(searchText.toLocaleLowerCase())\n )\n );\n },\n 250,\n [searchText]\n );\n\n const browserTimezone = useMemo(() => getBrowserTimezone(), []);\n\n const handleTimezoneMouseClick = (selectedTimezone: TimezoneData) => {\n setSelectedTimezone(selectedTimezone);\n };\n\n const handleApply = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n tzRange.onApply({\n startDate: tzRange.startDate,\n startTime: tzRange.startTime,\n endDate: tzRange.endDate,\n endTime: tzRange.endTime,\n timezone: selectedTimezone || {\n name: null,\n longName: null,\n utcOffset: null,\n },\n });\n };\n\n const getCurrentTimeInTz = (tzName: string | null) => {\n if (!tzName) return \"\";\n return dayjs().tz(tzName).format(\"h:mm A\");\n };\n\n return (\n <form className={commonStyled[\"form-container\"]} onSubmit={handleApply}>\n <Flex direction=\"column\" style={{ height: \"calc(100% - 40px)\" }}>\n <Box style={{ width: \"95%\" }} mx=\"auto\">\n <TimezoneSearch searchText={searchText} setSearchText={setSearchText} />\n </Box>\n <Box style={{ overflowY: \"scroll\" }}>\n <Text fw={600} px={12}>\n My Location\n </Text>\n <Flex direction=\"column\">\n <TimezoneList\n isBrowserTimezone\n name={tzRange.timezone?.name}\n longName={tzRange.timezone?.longName}\n currentTime={getCurrentTimeInTz(tzRange.timezone?.name)}\n utcOffset={tzRange.timezone?.utcOffset}\n selectedTimezone={selectedTimezone}\n />\n </Flex>\n <Text fw={600} px={12}>\n Locations\n </Text>\n <Flex direction={\"column\"} className={styled[\"list-container\"]}>\n {filteredTimezones.map((tz, idx) => (\n <TimezoneList\n key={idx}\n name={tz.name}\n longName={tz.longName}\n currentTime={tz.currentTime}\n utcOffset={tz.utcOffset}\n selectedTimezone={selectedTimezone}\n handleTimezoneMouseClick={handleTimezoneMouseClick}\n />\n ))}\n </Flex>\n </Box>\n </Flex>\n <Box px={12}>\n <Footer />\n </Box>\n </form>\n );\n};\n\nexport { TimezonePanel };\n",".sidebar-container {\n border-right: 1px solid #ddd;\n}\n\n.sidebar-row {\n cursor: pointer;\n\n & > div > svg {\n margin-right: 0.5rem;\n }\n}\n","import dayjs from \"dayjs\";\n\nexport interface ITimeOptions {\n label: string;\n searchKey: string;\n startTime: string;\n endTime: string;\n lineBreak?: boolean;\n}\n\nexport const getTimeOptions = (timezoneName: string): ITimeOptions[] => [\n {\n label: \"Today\",\n searchKey: \"today\",\n startTime: dayjs().tz(timezoneName).startOf(\"day\").format(),\n endTime: dayjs().tz(timezoneName).endOf(\"day\").format(),\n },\n {\n label: \"Tomorrow\",\n searchKey: \"tomorrow\",\n startTime: dayjs().tz(timezoneName).add(1, \"day\").startOf(\"day\").format(),\n endTime: dayjs().tz(timezoneName).add(1, \"day\").endOf(\"day\").format(),\n },\n {\n label: \"Yesterday\",\n searchKey: \"yesterday\",\n startTime: dayjs().tz(timezoneName).subtract(1, \"day\").startOf(\"day\").format(),\n endTime: dayjs().tz(timezoneName).subtract(1, \"day\").endOf(\"day\").format(),\n lineBreak: true,\n },\n {\n label: \"Last 15 seconds\",\n searchKey: \"-15s\",\n startTime: dayjs().tz(timezoneName).subtract(15, \"second\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 30 seconds\",\n searchKey: \"-30s\",\n startTime: dayjs().tz(timezoneName).subtract(30, \"second\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Next 15 seconds\",\n searchKey: \"+15s\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(15, \"second\").format(),\n },\n {\n label: \"Next 30 seconds\",\n searchKey: \"+30s\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(30, \"second\").format(),\n lineBreak: true,\n },\n {\n label: \"Last 5 minutes\",\n searchKey: \"-5m\",\n startTime: dayjs().tz(timezoneName).subtract(5, \"minute\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 10 minutes\",\n searchKey: \"-10m\",\n startTime: dayjs().tz(timezoneName).subtract(10, \"minute\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 15 minutes\",\n searchKey: \"-15m\",\n startTime: dayjs().tz(timezoneName).subtract(15, \"minute\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 30 minutes\",\n searchKey: \"-30m\",\n startTime: dayjs().tz(timezoneName).subtract(30, \"minute\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 45 minutes\",\n searchKey: \"-45m\",\n startTime: dayjs().tz(timezoneName).subtract(45, \"minute\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Next 5 minutes\",\n searchKey: \"+5m\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(5, \"minute\").format(),\n },\n {\n label: \"Next 10 minutes\",\n searchKey: \"+10m\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(10, \"minute\").format(),\n },\n {\n label: \"Next 15 minutes\",\n searchKey: \"+15m\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(15, \"minute\").format(),\n },\n {\n label: \"Next 30 minutes\",\n searchKey: \"+30m\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(30, \"minute\").format(),\n },\n {\n label: \"Next 45 minutes\",\n searchKey: \"+45m\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(45, \"minute\").format(),\n lineBreak: true,\n },\n {\n label: \"Last 1 hour\",\n searchKey: \"-1h\",\n startTime: dayjs().tz(timezoneName).subtract(1, \"hour\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 3 hours\",\n searchKey: \"-3h\",\n startTime: dayjs().tz(timezoneName).subtract(3, \"hour\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 6 hours\",\n searchKey: \"-6h\",\n startTime: dayjs().tz(timezoneName).subtract(6, \"hour\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 12 hours\",\n searchKey: \"-12h\",\n startTime: dayjs().tz(timezoneName).subtract(12, \"hour\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Next 1 hour\",\n searchKey: \"+1h\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(1, \"hour\").format(),\n },\n {\n label: \"Next 3 hours\",\n searchKey: \"+3h\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(3, \"hour\").format(),\n },\n {\n label: \"Next 6 hours\",\n searchKey: \"+6h\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(6, \"hour\").format(),\n },\n {\n label: \"Next 12 hours\",\n searchKey: \"+12h\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(12, \"hour\").format(),\n lineBreak: true,\n },\n {\n label: \"Last 1 day\",\n searchKey: \"-1d\",\n startTime: dayjs().tz(timezoneName).subtract(1, \"day\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 2 days\",\n searchKey: \"-2d\",\n startTime: dayjs().tz(timezoneName).subtract(2, \"day\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 7 days\",\n searchKey: \"-7d\",\n startTime: dayjs().tz(timezoneName).subtract(7, \"day\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 14 days\",\n searchKey: \"-14d\",\n startTime: dayjs().tz(timezoneName).subtract(14, \"day\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Last 30 days\",\n searchKey: \"-30d\",\n startTime: dayjs().tz(timezoneName).subtract(30, \"day\").format(),\n endTime: dayjs().tz(timezoneName).format(),\n },\n {\n label: \"Next 1 day\",\n searchKey: \"+1d\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(1, \"day\").format(),\n },\n {\n label: \"Next 2 days\",\n searchKey: \"+2d\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(2, \"day\").format(),\n },\n {\n label: \"Next 7 days\",\n searchKey: \"+7d\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(7, \"day\").format(),\n },\n {\n label: \"Next 14 days\",\n searchKey: \"+14d\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(14, \"day\").format(),\n },\n {\n label: \"Next 30 days\",\n searchKey: \"+30d\",\n startTime: dayjs().tz(timezoneName).format(),\n endTime: dayjs().tz(timezoneName).add(30, \"day\").format(),\n },\n];\n",".relative-time-panel-container {\n height: calc(100% - 120px - 36px);\n overflow-y: auto;\n}\n\n.time-row {\n cursor: pointer;\n}\n\n.time-row-dark {\n &:hover {\n background-color: #3a3a3a;\n }\n}\n\n.time-row-light {\n &:hover {\n background-color: #f3f4f6;\n }\n}\n","import { getTimeOptions, ITimeOptions } from \"./timeOptions\";\nimport { Box, Flex, Input, Text } from \"@mantine/core\";\nimport styled from \"./index.module.css\";\nimport { useEffect, useState } from \"react\";\nimport { useDebounce } from \"react-use\";\nimport clsx from \"clsx\";\nimport { useAppTheme } from \"../hooks/useAppTheme\";\nimport { TzRange } from \"../interfaces\";\n\ninterface IRelativeTimePanel {\n tzRange: TzRange;\n}\n\nexport const RelativeTimePanel = ({ tzRange }: IRelativeTimePanel) => {\n const [filteredOptions, setFilteredOptions] = useState<ITimeOptions[]>([]);\n const [searchText, setSearchText] = useState(\"\");\n const { colorScheme } = useAppTheme();\n\n useEffect(() => {\n if (tzRange.timezone.name !== null) {\n const timeOptions = getTimeOptions(tzRange.timezone.name);\n setFilteredOptions(timeOptions);\n }\n }, [tzRange.timezone]);\n\n useDebounce(\n () => {\n if (searchText === \"\") {\n setFilteredOptions(getTimeOptions(tzRange.timezone.name!));\n return;\n }\n\n const newTimeOptions = filteredOptions.filter((value) =>\n value.searchKey.includes(searchText)\n );\n setFilteredOptions(newTimeOptions);\n },\n 250,\n [searchText]\n );\n\n const handleRowClick = (option: ITimeOptions) => {\n const [startDate, startTime] = option.startTime.split(\"T\");\n const [endDate, endTime] = option.endTime.split(\"T\");\n\n tzRange.onApply({\n startDate,\n startTime: startTime.slice(0, 8),\n endDate,\n endTime: endTime.slice(0, 8),\n timezone: tzRange.timezone,\n });\n };\n\n return (\n <>\n <Box style={{ width: \"90%\" }} mx={\"auto\"}>\n <Input\n placeholder=\"Relative time (15m, 1h, 1d, 1w)\"\n // leftSection={<IconFilter2 stroke={2} color=\"#313B49\" />}\n value={searchText}\n onChange={(e) => setSearchText(e.currentTarget.value)}\n />\n </Box>\n <Flex direction={\"column\"} className={styled[\"relative-time-panel-container\"]}>\n {filteredOptions.map((op) => (\n <Flex\n key={op.label}\n align={\"center\"}\n justify={\"space-between\"}\n className={clsx(\n colorScheme === \"dark\" ? styled[\"time-row-dark\"] : styled[\"time-row-light\"],\n styled[\"time-row\"]\n )}\n py={4}\n px={12}\n mb={op.lineBreak ? 8 : 0}\n onClick={() => handleRowClick(op)}\n >\n <Text size=\"sm\">{op.label}</Text>\n <Text size=\"xs\" c=\"#5f6368\">\n {op.searchKey}\n </Text>\n </Flex>\n ))}\n </Flex>\n </>\n );\n};\n","import { Box, Flex, Text } from \"@mantine/core\";\nimport {\n IconClock,\n IconCalendarWeekFilled,\n IconWorld,\n IconChevronRight,\n} from \"@tabler/icons-react\";\nimport styled from \"./index.module.css\";\nimport { Dispatch, FC, SetStateAction } from \"react\";\nimport { Panel } from \"../TimezoneRangePicker\";\nimport { RelativeTimePanel } from \"../RelativeTimePanel\";\nimport { TzRange } from \"../interfaces\";\n\ninterface ISidebar {\n tzRange: TzRange;\n setSelectedPanel: Dispatch<SetStateAction<Panel>>;\n}\n\nexport const Sidebar: FC<ISidebar> = ({ setSelectedPanel, tzRange }) => {\n return (\n <Box className={styled[\"sidebar-container\"]} flex={1}>\n <RelativeTimePanel tzRange={tzRange} />\n <Flex direction=\"column\" rowGap={16} py={8} style={{ borderTop: \"1px solid #ddd\" }}>\n <Flex\n className={styled[\"sidebar-row\"]}\n justify={\"space-between\"}\n align={\"center\"}\n px={12}\n onClick={() => setSelectedPanel(Panel.START_END_TIME)}\n >\n <Flex align={\"center\"}>\n <IconCalendarWeekFilled stroke={1.5} />\n <Text size=\"sm\">Start and end times</Text>\n </Flex>\n <IconChevronRight stroke={1.5} />\n </Flex>\n <Flex\n className={styled[\"sidebar-row\"]}\n justify={\"space-between\"}\n align={\"center\"}\n px={12}\n onClick={() => setSelectedPanel(Panel.AROUND_TIME)}\n >\n <Flex align={\"center\"}>\n <IconClock stroke={1.5} />\n <Text size=\"sm\">Around a time</Text>\n </Flex>\n <IconChevronRight stroke={1.5} />\n </Flex>\n <Flex\n className={styled[\"sidebar-row\"]}\n justify={\"space-between\"}\n align={\"center\"}\n px={12}\n onClick={() => setSelectedPanel(Panel.TIMEZONE)}\n >\n <Flex align={\"center\"}>\n <IconWorld stroke={1.5} />\n <Text size=\"sm\">Time zone</Text>\n </Flex>\n <IconChevronRight stroke={1.5} />\n </Flex>\n </Flex>\n </Box>\n );\n};\n","import dayjs from \"dayjs\";\nimport { TzRange } from \"../interfaces\";\n\nexport const getCurrentTime = () => dayjs().format(\"HH:mm:ss\");\n\nexport const getCurrentDate = () => dayjs().format(\"YYYY-MM-DD\");\n\nexport const getCurrentPlusDate = (amount: number) =>\n dayjs().add(amount, \"day\").format(\"YYYY-MM-DD\");\n\nexport const getShortTimezoneName = (tz: string | null) => {\n if (!tz) return tz;\n return dayjs().tz(tz).format(\"Z\");\n};\n\nexport const getPopoverButtonText = (tzRange: TzRange) => {\n return `${dayjs(tzRange.startDate).format(\"YYYY/MM/DD\")} ${tzRange.startTime} - ${dayjs(\n tzRange.endDate\n ).format(\"YYYY/MM/DD\")} ${tzRange.endTime} (${getShortTimezoneName(tzRange.timezone.name)})`;\n};\n\nexport const getPastDateTime = (\n date: string | null,\n time: string,\n amount: number,\n unit: dayjs.ManipulateType\n) => {\n const d = dayjs(`${date} ${time}`).subtract(amount, unit);\n return {\n date: d.format(\"YYYY-MM-DD\"),\n time: d.format(\"HH:mm:ss\"),\n };\n};\n\nexport const getFutureDateTime = (\n date: string | null,\n time: string,\n amount: number,\n unit: dayjs.ManipulateType\n) => {\n const d = dayjs(`${date} ${time}`).add(amount, unit);\n return {\n date: d.format(\"YYYY-MM-DD\"),\n time: d.format(\"HH:mm:ss\"),\n };\n};\n","import dayjs from \"dayjs\";\nimport { getFutureDateTime, getPastDateTime } from \"../util/dateTime\";\n\nexport enum TimeOption {\n ThirtySeconds = \"± 30 seconds\",\n OneMinute = \"± 1 minute\",\n FifteenMinutes = \"± 15 minutes\",\n ThirtyMinutes = \"± 30 minutes\",\n OneHour = \"± 1 hour\",\n OneDay = \"± 1 day\",\n}\n\nexport const TIME_OPTIONS = [\n TimeOption.ThirtySeconds,\n TimeOption.OneMinute,\n TimeOption.FifteenMinutes,\n TimeOption.ThirtyMinutes,\n TimeOption.OneHour,\n TimeOption.OneDay,\n];\n\nexport const getStartEndDateTime = (date: string | null, time: string, timeOption: TimeOption) => {\n switch (timeOption) {\n case TimeOption.ThirtySeconds:\n const startDateTime = getPastDateTime(date, time, 30, \"second\");\n const endDateTime = getFutureDateTime(date, time, 30, \"second\");\n return {\n startDate: startDateTime.date,\n startTime: startDateTime.time,\n endDate: endDateTime.date,\n endTime: endDateTime.time,\n };\n case TimeOption.OneMinute:\n const startDateTime1 = getPastDateTime(date, time, 1, \"minute\");\n const endDateTime1 = getFutureDateTime(date, time, 1, \"minute\");\n return {\n startDate: startDateTime1.date,\n startTime: startDateTime1.time,\n endDate: endDateTime1.date,\n endTime: endDateTime1.time,\n };\n case TimeOption.FifteenMinutes:\n const startDateTime15 = getPastDateTime(date, time, 15, \"minute\");\n const endDateTime15 = getFutureDateTime(date, time, 15, \"minute\");\n return {\n startDate: startDateTime15.date,\n startTime: startDateTime15.time,\n endDate: endDateTime15.date,\n endTime: endDateTime15.time,\n };\n case TimeOption.ThirtyMinutes:\n const startDateTime30 = getPastDateTime(date, time, 30, \"minute\");\n const endDateTime30 = getFutureDateTime(date, time, 30, \"minute\");\n return {\n startDate: startDateTime30.date,\n startTime: startDateTime30.time,\n endDate: endDateTime30.date,\n endTime: endDateTime30.time,\n };\n case TimeOption.OneHour:\n const startDateTime60 = getPastDateTime(date, time, 1, \"hour\");\n const endDateTime60 = getFutureDateTime(date, time, 1, \"hour\");\n return {\n startDate: startDateTime60.date,\n startTime: startDateTime60.time,\n endDate: endDateTime60.date,\n endTime: endDateTime60.time,\n };\n case TimeOption.OneDay:\n const startDateTimeDay = getPastDateTime(date, time, 1, \"day\");\n const endDateTimeDay = getFutureDateTime(date, time, 1, \"day\");\n return {\n startDate: startDateTimeDay.date,\n startTime: startDateTimeDay.time,\n endDate: endDateTimeDay.date,\n endTime: endDateTimeDay.time,\n };\n default:\n return {\n startDate: date,\n startTime: time,\n endDate: date,\n endTime: time,\n };\n }\n};\n","import { FC } from \"react\";\nimport { Box, Flex, Select, Text } from \"@mantine/core\";\nimport { DatePickerInput, TimeInput } from \"@mantine/dates\";\nimport { IconCalendar, IconClock } from \"@tabler/icons-react\";\nimport { getCurrentDate, getCurrentTime } from \"../util/dateTime\";\nimport { Footer } from \"../Footer\";\nimport { TzRange } from \"../interfaces\";\nimport { getStartEndDateTime, TIME_OPTIONS, TimeOption } from \"./util\";\nimport styled from \"../styles/index.module.css\";\nimport { useForm } from \"@mantine/form\";\n\ninterface IAroundTimePanel {\n tzRange: TzRange;\n}\n\nconst AroundTimePanel: FC<IAroundTimePanel> = ({ tzRange }) => {\n const form = useForm({\n initialValues: {\n date: getCurrentDate(),\n time: getCurrentTime(),\n duration: TimeOption.OneDay,\n },\n });\n\n const onSubmit = (values: typeof form.values) => {\n const { startDate, startTime, endDate, endTime } = getStartEndDateTime(\n values.date,\n values.time,\n values.duration\n );\n\n tzRange.onApply({\n startDate,\n startTime,\n endDate,\n endTime,\n timezone: tzRange.timezone,\n });\n };\n\n return (\n <Flex direction=\"column\" flex={2} justify={\"space-between\"} style={{ height: \"100%\" }} px={12}>\n <form className={styled[\"form-container\"]} onSubmit={form.onSubmit(onSubmit)}>\n <Box>\n <Text fw={600}>Around a time</Text>\n <Flex direction=\"column\" gap={8} mt={12}>\n <DatePickerInput\n label=\"Pick date\"\n placeholder=\"Pick date\"\n key={form.key(\"date\")}\n {...form.getInputProps(\"date\")}\n popoverProps={{ withinPortal: false }}\n valueFormat=\"YYYY/MM/DD\"\n leftSection={<IconCalendar stroke={1.5} />}\n />\n <TimeInput\n label=\"Pick time\"\n placeholder=\"Pick time\"\n withSeconds\n defaultValue={getCurrentTime()}\n key={form.key(\"time\")}\n {...form.getInputProps(\"time\")}\n leftSection={<IconClock stroke={1.5} />}\n rightSection={\n <Text style={{ fontSize: 12, fontStyle: \"italic\", textAlign: \"right\" }}>\n {tzRange.timezone?.longName}\n </Text>\n }\n rightSectionWidth={180}\n rightSectionProps={{\n style: {\n paddingRight: 1,\n },\n }}\n />\n <Select\n label=\"Duration\"\n placeholder=\"Pick value\"\n data={TIME_OPTIONS}\n key={form.key(\"duration\")}\n {...form.getInputProps(\"duration\")}\n comboboxProps={{ withinPortal: false }}\n />\n </Flex>\n </Box>\n <Footer />\n </form>\n </Flex>\n );\n};\n\nexport { AroundTimePanel };\n","import { FC } from \"react\";\nimport { Box, Flex, Text } from \"@mantine/core\";\nimport { DatePickerInput, TimeInput } from \"@mantine/dates\";\nimport { IconCalendar, IconClock } from \"@tabler/icons-react\";\nimport { getCurrentDate, getCurrentPlusDate, getCurrentTime } from \"../util/dateTime\";\nimport { Footer } from \"../Footer\";\nimport { TzRange } from \"../interfaces\";\nimport { useForm } from \"@mantine/form\";\nimport styled from \"../styles/index.module.css\";\n\ninterface IStartEndTimePanel {\n tzRange: TzRange;\n}\n\nconst StartEndTimePanel: FC<IStartEndTimePanel> = ({ tzRange }) => {\n const form = useForm({\n mode: \"uncontrolled\",\n initialValues: {\n startDate: getCurrentDate(),\n startTime: getCurrentTime(),\n endDate: getCurrentPlusDate(30),\n endTime: getCurrentTime(),\n },\n });\n\n const onSubmit = (values: typeof form.values) => {\n tzRange.onApply({\n startDate: values.startDate,\n startTime: values.startTime,\n endDate: values.endDate,\n endTime: values.endTime,\n timezone: tzRange.timezone,\n });\n };\n\n return (\n <Flex direction=\"column\" flex={2} style={{ height: \"100%\" }} px={12}>\n <form className={styled[\"form-container\"]} onSubmit={form.onSubmit(onSubmit)}>\n <Box>\n <Text fw={600}>Start and end times</Text>\n <Flex direction=\"column\" gap={8} mt={12}>\n <DatePickerInput\n label=\"Start time\"\n key={form.key(\"startDate\")}\n {...form.getInputProps(\"startDate\")}\n popoverProps={{ withinPortal: false }}\n valueFormat=\"YYYY/MM/DD\"\n leftSection={<IconCalendar stroke={1.5} />}\n />\n <TimeInput\n withSeconds\n defaultValue={getCurrentTime()}\n key={form.key(\"startTime\")}\n {...form.getInputProps(\"startTime\")}\n leftSection={<IconClock stroke={1.5} />}\n rightSection={\n <Text style={{ fontSize: 12, fontStyle: \"italic\" }}>\n {tzRange.timezone?.longName}\n </Text>\n }\n rightSectionWidth={180}\n rightSectionProps={{\n style: {\n paddingRight: 1,\n },\n }}\n />\n <DatePickerInput\n label=\"End time\"\n key={form.key(\"endDate\")}\n {...form.getInputProps(\"endDate\")}\n popoverProps={{ withinPortal: false }}\n valueFormat=\"YYYY/MM/DD\"\n leftSection={<IconCalendar stroke={1.5} />}\n />\n <TimeInput\n withSeconds\n defaultValue={getCurrentTime()}\n key={form.key(\"endTime\")}\n {...form.getInputProps(\"endTime\")}\n leftSection={<IconClock stroke={1.5} />}\n rightSection={\n <Text style={{ fontSize: 12, fontStyle: \"italic\" }}>\n {tzRange.timezone?.longName}\n </Text>\n }\n rightSectionWidth={180}\n rightSectionProps={{\n style: {\n paddingRight: 1,\n },\n }}\n />\n </Flex>\n </Box>\n <Footer />\n </form>\n </Flex>\n );\n};\n\nexport { StartEndTimePanel };\n","import { Flex, Popover } from \"@mantine/core\";\nimport { Button } from \"@mantine/core\";\nimport { TimezonePanel } from \"../TimezonePanel\";\nimport { Sidebar } from \"../Sidebar\";\nimport { AroundTimePanel } from \"../AroundTimePanel\";\nimport { StartEndTimePanel } from \"../StartEndTimePanel\";\nimport { FC, useMemo, useState } from \"react\";\nimport { TzRange } from \"../interfaces\";\nimport { getPopoverButtonText } from \"../util/dateTime\";\n\nexport enum Panel {\n START_END_TIME = \"Start and end times\",\n AROUND_TIME = \"Around a time\",\n TIMEZONE = \"Time zone\",\n}\n\nexport const TimezoneRangePicker: FC<TzRange> = (tzRange) => {\n const [selectedPanel, setSelectedPanel] = useState<Panel>(Panel.START_END_TIME);\n\n const renderPanel = () => {\n switch (selectedPanel) {\n case Panel.START_END_TIME:\n return <StartEndTimePanel tzRange={tzRange} />;\n case Panel.AROUND_TIME:\n return <AroundTimePanel tzRange={tzRange} />;\n case Panel.TIMEZONE:\n return <TimezonePanel tzRange={tzRange} />;\n default:\n return null;\n }\n };\n\n const getButtonText = useMemo(\n () => getPopoverButtonText(tzRange),\n [tzRange.startDate, tzRange.startTime, tzRange.endDate, tzRange.endTime, tzRange.timezone]\n );\n\n return (\n <Popover position=\"bottom\" shadow=\"md\">\n <Popover.Target>\n <Button>{getButtonText}</Button>\n </Popover.Target>\n <Popover.Dropdown style={{ width: 700, height: 400, padding: 0 }} py={8}>\n <Flex style={{ height: \"100%\" }}>\n <Sidebar tzRange={tzRange} setSelectedPanel={setSelectedPanel} />\n {renderPanel()}\n </Flex>\n </Popover.Dropdown>\n </Popover>\n );\n};\n"]}
|