remove scroll in analytics page
- add searchable dropdown in analytics page
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useEffect, useState, useRef } from 'react';
|
||||
import { query, collection, onSnapshot } from 'firebase/firestore';
|
||||
import Dropdown from 'react-dropdown';
|
||||
import 'react-dropdown/style.css';
|
||||
import moment from 'moment';
|
||||
import Select from 'react-select';
|
||||
|
||||
import DeviceGraph from "./DeviceGraph";
|
||||
import db from '../firebase';
|
||||
@@ -18,11 +19,15 @@ const Devices = () => {
|
||||
const [tests, setTests] = useState([]);
|
||||
const [allTests, setAllTests] = useState(null);
|
||||
const [showGraph, setShowGraph] = useState(false);
|
||||
const selectDateDropdownRef = useRef();
|
||||
const selectTestDropdownRef = useRef();
|
||||
|
||||
const changeDevice = ({ value }) => {
|
||||
setDevice(value);
|
||||
setTestDate(null);
|
||||
setCurTest(null);
|
||||
selectDateDropdownRef.current?.setValue("");
|
||||
selectTestDropdownRef.current?.setValue("");
|
||||
setDays([...new Set(allTests
|
||||
.filter((x) => x.deviceSerialNumber === value)
|
||||
.map(x => moment(x.testTime).format("YYYY-MM-DD")))]
|
||||
@@ -32,6 +37,7 @@ const Devices = () => {
|
||||
|
||||
const changeTestDate = ({ value }) => {
|
||||
setTestDate(value);
|
||||
selectTestDropdownRef.current?.setValue("");
|
||||
setCurTest(null);
|
||||
setCurTestData(null);
|
||||
setShowGraph(false);
|
||||
@@ -84,15 +90,38 @@ const Devices = () => {
|
||||
|
||||
return (
|
||||
<div className="devices-page">
|
||||
<div className='title'>Insights</div>
|
||||
<div className='insights-title'>Insights</div>
|
||||
<div className='dropdown-group'>
|
||||
<Dropdown className='device-dropdown' options={devices} onChange={changeDevice} value={device} placeholder="Select an device" />
|
||||
{/* <Dropdown className='device-dropdown' options={devices} onChange={changeDevice} value={device} placeholder="Select an device" />
|
||||
<Dropdown className='day-dropdown' options={days} onChange={changeTestDate} value={testDate} placeholder="Select an test date" />
|
||||
<Dropdown className='test-dropdown' options={tests} onChange={changeTest} value={curTest} placeholder="Select an test" />
|
||||
<Dropdown className='test-dropdown' options={tests} onChange={changeTest} value={curTest} placeholder="Select an test" /> */}
|
||||
|
||||
{/* <Select className='device-dropdown' options={devices.map(x => { return { value: x, label: x }; })} menuPlacement='auto' maxMenuHeight={250} menuShouldScrollIntoView={true} onChange={changeDevice} />
|
||||
<Select className='day-dropdown' options={days.map(x => { return { value: x, label: x }; })} menuPlacement='auto' maxMenuHeight={250} menuShouldScrollIntoView={true} onChange={changeTestDate} />
|
||||
<Select className='test-dropdown' options={tests.map(x => { return { value: x, label: x }; })} menuPlacement='auto' maxMenuHeight={220} menuShouldScrollIntoView={true} onChange={changeTestDate} /> */}
|
||||
<Select
|
||||
className='device-dropdown'
|
||||
defaultValue={{ label: "Select a device", value: "Select a device" }}
|
||||
options={devices.map(x => { return { value: x, label: x }; })}
|
||||
menuPlacement='auto'
|
||||
maxMenuHeight={250}
|
||||
menuShouldScrollIntoView={true}
|
||||
onChange={changeDevice} />
|
||||
<Select
|
||||
ref={selectDateDropdownRef}
|
||||
className='day-dropdown'
|
||||
defaultValue={{ label: "Select a test date", value: "Select a test date" }}
|
||||
options={days.map(x => { return { value: x, label: x }; })}
|
||||
menuPlacement='auto'
|
||||
maxMenuHeight={250}
|
||||
menuShouldScrollIntoView={true}
|
||||
onChange={changeTestDate} />
|
||||
<Select
|
||||
ref={selectTestDropdownRef}
|
||||
className='test-dropdown'
|
||||
defaultValue={{ label: "Select a test", value: "Select a test" }}
|
||||
options={tests.map(x => { return { value: x, label: x }; })}
|
||||
menuPlacement='auto'
|
||||
maxMenuHeight={220}
|
||||
menuShouldScrollIntoView={true}
|
||||
onChange={changeTest} />
|
||||
|
||||
<button className='clear-button' onClick={toggleShowGraph}><img className="graph-icon" src={require('../assets/graph_icon.png')} alt='icon'></img>{curTestData ? 'Clear' : 'Show'}</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user