From dbe47e73dc3b72f564d41e975c00ebefb4bf59fb Mon Sep 17 00:00:00 2001 From: TzeYiing Date: Thu, 13 Jan 2022 03:48:14 +0800 Subject: [PATCH] added basic dropdown implementation --- .../interfaces/Settings/Logs/LogPanel.tsx | 62 ++++++++++++++++++- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/studio/components/interfaces/Settings/Logs/LogPanel.tsx b/studio/components/interfaces/Settings/Logs/LogPanel.tsx index ed80630b45e..d5e471bc158 100644 --- a/studio/components/interfaces/Settings/Logs/LogPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/LogPanel.tsx @@ -1,4 +1,4 @@ -import { FC, useEffect, useState } from 'react' +import React, { FC, SyntheticEvent, useEffect, useMemo, useState } from 'react' import { Button, Input, @@ -9,9 +9,11 @@ import { IconX, Toggle, IconSearch, + IconClock, } from '@supabase/ui' import { LogTemplate } from '.' - +import { isNull } from 'lodash' +import dayjs from 'dayjs' interface Props { defaultSearchValue?: string templates?: any @@ -39,7 +41,8 @@ const LogPanel: FC = ({ onSelectTemplate, }) => { const [search, setSearch] = useState('') - + const [from, setFrom] = useState({ value: '', error: '' }) + const [defaultTimestamp, setDefaultTimestamp] = useState(dayjs().toISOString()) // sync local state with provided default value useEffect(() => { if (search !== defaultSearchValue) { @@ -47,6 +50,18 @@ const LogPanel: FC = ({ } }, [defaultSearchValue]) + const handleFromChange = (e: React.ChangeEvent) => { + let error = '' + const value = e.target.value + // // try to parse the iso value + // if (isNaN(Date.parse(value))) + setFrom({ value, error }) + } + const handleFromReset = () => { + const value = dayjs().toISOString() + setFrom({ value, error: '' }) + setDefaultTimestamp(value) + } return (
@@ -99,6 +114,47 @@ const LogPanel: FC = ({
+
+ + + ), + , + ]} + /> + + } + > + + +
{/* wrap with form so that if user presses enter, the search value will submit automatically */}