From 0d00cf0349fa8edd179bac80a95f00a70db963d5 Mon Sep 17 00:00:00 2001 From: sylenien Date: Thu, 12 May 2022 16:34:11 +0200 Subject: [PATCH] more search field fixes --- .../Filters/FilterModal/FilterModal.tsx | 17 +++++--- .../LiveFilterModal/LiveFilterModal.tsx | 39 +++++++++++++++++-- .../components/DefaultTimezone.tsx | 13 +++++-- 3 files changed, 57 insertions(+), 12 deletions(-) diff --git a/frontend/app/components/shared/Filters/FilterModal/FilterModal.tsx b/frontend/app/components/shared/Filters/FilterModal/FilterModal.tsx index 04688de6b..a11695d5c 100644 --- a/frontend/app/components/shared/Filters/FilterModal/FilterModal.tsx +++ b/frontend/app/components/shared/Filters/FilterModal/FilterModal.tsx @@ -15,7 +15,7 @@ interface Props { searchQuery?: string, } function FilterModal(props: Props) { - const { + const { filters, metaOptions, onFilterClick = () => null, @@ -32,13 +32,20 @@ function FilterModal(props: Props) { _filter.value = [filter.value]; onFilterClick(_filter); } - + + const isResultEmpty = !filterSearchList || Object.keys(filterSearchList).length === 0 return (
+ { showSearchList && (
- { filterSearchList && Object.keys(filterSearchList).map((key, index) => { + {isResultEmpty && !fetchingFilterSearchList ? ( +
+ +
No Suggestions Found
+
+ ) : Object.keys(filterSearchList).map((key, index) => { const filter = filterSearchList[key]; const option = filtersMap[key]; return option ? ( @@ -65,7 +72,7 @@ function FilterModal(props: Props) {
)} - + { !hasSearchQuery && (
{filters && Object.keys(filters).map((key) => ( @@ -92,4 +99,4 @@ export default connect(state => ({ filterSearchList: state.getIn([ 'search', 'filterSearchList' ]), metaOptions: state.getIn([ 'customFields', 'list' ]), fetchingFilterSearchList: state.getIn([ 'search', 'fetchFilterSearch', 'loading' ]), -}))(FilterModal); \ No newline at end of file +}))(FilterModal); diff --git a/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx b/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx index c75d0f4ca..b00897add 100644 --- a/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx +++ b/frontend/app/components/shared/Filters/LiveFilterModal/LiveFilterModal.tsx @@ -15,7 +15,7 @@ interface Props { searchQuery?: string, } function LiveFilterModal(props: Props) { - const { + const { filters, metaOptions, onFilterClick = () => null, @@ -32,7 +32,9 @@ function LiveFilterModal(props: Props) { _filter.value = [filter.value]; onFilterClick(_filter); } - + + const isResultEmpty = !filterSearchList || Object.keys(filterSearchList).filter(i => filtersMap[i].isLive).length === 0 + return (
{ showSearchList && ( @@ -62,10 +64,39 @@ function LiveFilterModal(props: Props) {
); })} + {isResultEmpty && !fetchingFilterSearchList ? ( +
+ +
No Suggestions Found
+
+ ) : Object.keys(filterSearchList).filter(i => filtersMap[i].isLive).map((key, index) => { + const filter = filterSearchList[key]; + const option = filtersMap[key]; + return ( +
+
{option.label}
+
+ {filter.map((f, i) => ( +
onFilterSearchClick({ type: key, value: f.value })} + > + +
{f.value}
+
+ ))} +
+
+ ); + })}
)} - + { !hasSearchQuery && (
{filters && Object.keys(filters).map((key) => ( @@ -92,4 +123,4 @@ export default connect(state => ({ filterSearchList: state.getIn([ 'search', 'filterSearchList' ]), metaOptions: state.getIn([ 'customFields', 'list' ]), fetchingFilterSearchList: state.getIn([ 'search', 'fetchFilterSearch', 'loading' ]), -}))(LiveFilterModal); \ No newline at end of file +}))(LiveFilterModal); diff --git a/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx b/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx index efb91fed9..8e6edee88 100644 --- a/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx +++ b/frontend/app/components/shared/SessionSettings/components/DefaultTimezone.tsx @@ -6,8 +6,15 @@ import { useObserver } from 'mobx-react-lite'; const str = new Date().toString().match(/([A-Z]+[\+-][0-9]+)/) const d = str && str[1] || 'UTC'; + +const localMachineFormat = new Date().toString().match(/([A-Z]+[\+-][0-9]+)/) +const middlePoint = localMachineFormat && localMachineFormat[1].length - 2 +const readableLocalTimezone = localMachineFormat && middlePoint ? + `${localMachineFormat[1].substring(0, 3)} ${localMachineFormat[1].substring(3, middlePoint)}:${localMachineFormat[1].substring(middlePoint)}` + : null + const timezoneOptions = [ - { label: d, value: 'local' }, + { label: readableLocalTimezone, value: 'local' }, { label: 'UTC', value: 'UTC' }, ] @@ -38,9 +45,9 @@ function DefaultTimezone(props) { }}>Update
-
This change will impact the timestamp on session card and player.
+
This change will impact the timestamp on session card and player.
); } -export default DefaultTimezone; \ No newline at end of file +export default DefaultTimezone;