Skip to content

Commit 8fec221

Browse files
authored
Merge pull request #76 from metrico/jacovinus-mutiple-label-tooltip
Add settings menu and settings dialog
2 parents 3aecc85 + 0b430c7 commit 8fec221

File tree

23 files changed

+502
-669
lines changed

23 files changed

+502
-669
lines changed

Diff for: src/actions/setSettingsDialogOpen

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const setSettingsDialogOpen = (settingsDialogOpen) => (dispatch) => {
2+
dispatch({
3+
type: 'SET_SETTINGS_DIALOG_OPEN',
4+
settingsDialogOpen
5+
})
6+
}
7+
8+
export default setSettingsDialogOpen;

Diff for: src/components/LabelBrowser/components/styled/index.js

+6-30
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import styled from "@emotion/styled";
22

33
import HistoryIcon from "@mui/icons-material/History";
44
import darkTheme from "../../../../theme/dark";
5+
import { BtnSmall } from "../../../../theme/styles/Button";
56

67
// get theme from main state
78

@@ -10,19 +11,11 @@ const theme = darkTheme;
1011
export const HistoryIconStyled = styled(HistoryIcon)`
1112
color: ${(props) => props.color};
1213
`;
13-
export const HistoryButtonStyled = styled.button`
14+
export const HistoryButtonStyled = styled(BtnSmall)`
1415
background: none;
1516
color: ${theme.textColor};
1617
margin-left: 5px;
1718
background: ${theme.buttonHover};
18-
border: none;
19-
cursor: pointer;
20-
display: flex;
21-
align-items: center;
22-
line-height: 1.5;
23-
font-size: 1em;
24-
padding: 0px 8px;
25-
border-radius: 3px;
2619
span {
2720
margin-left: 5px;
2821
}
@@ -31,18 +24,11 @@ export const HistoryButtonStyled = styled.button`
3124
}
3225
`;
3326

34-
export const ShowLabelsBtn = styled.button`
35-
background: ${(props) => (props.browserActive ? theme.buttonDefault : theme.buttonHover)};
36-
font-size: 1em;
37-
display: flex;
38-
cursor: pointer;
39-
align-items: center;
27+
export const ShowLabelsBtn = styled(BtnSmall)`
28+
background: ${(props) =>
29+
props.browserActive ? theme.buttonDefault : theme.buttonHover};
4030
text-overflow: ellipsis;
41-
border: none;
42-
border-radius: 3px;
43-
padding: 4px 8px;
4431
transition: 0.25s all;
45-
white-space: nowrap;
4632
justify-content: flex-start;
4733
color: ${theme.textColor};
4834
&:hover {
@@ -64,22 +50,12 @@ export const QueryBarContainer = styled.div`
6450
flex-wrap: wrap;
6551
border-radius: 3px;
6652
`;
67-
export const ShowLogsBtn = styled.button`
53+
export const ShowLogsBtn = styled(BtnSmall)`
6854
background: ${theme.primaryDark};
69-
cursor: pointer;
7055
color: white;
71-
outline: none;
72-
border: none;
73-
border-radius: 3px;
74-
7556
margin-left: 5px;
7657
transition: 0.25s all;
77-
padding: 4px 8px;
78-
font-size: 1em;
79-
line-height: 1.5;
80-
align-items: center;
8158
justify-content: center;
82-
white-space: nowrap;
8359
&:hover {
8460
background: ${theme.primaryLight};
8561
}

Diff for: src/components/MainView.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,28 @@ import DataView from "./DataView/DataView";
44
import StatusBar from "./StatusBar";
55
import { UpdateStateFromQueryParams } from "../helpers/UpdateStateFromQueryParams";
66
import LabelBrowser from "./LabelBrowser";
7-
import SettingsMenu from "../plugins/settingsmenu";
7+
import SettingsDialog from "../plugins/settingsdialog/SettingsDialog";
8+
import { useSelector } from 'react-redux';
89

910
export default function MainView() {
1011
UpdateStateFromQueryParams();
11-
12+
const settingsDialogOpen = useSelector( store => store.settingsDialogOpen)
1213
return (
1314
<div className={"log-search"}>
15+
1416
<StatusBar />
1517

1618
<LabelBrowser />
1719

1820
<DataView />
1921

2022
<Notification />
21-
<SettingsMenu />
23+
24+
25+
<SettingsDialog
26+
open={settingsDialogOpen}
27+
/>
28+
2229
</div>
2330
);
2431
}

Diff for: src/components/StatusBar/components/apiselector/ApiSelector.js

+18-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ import loadLogs from "../../../../actions/loadLogs";
77
import { setApiUrl } from "../../../../actions";
88
import LinkIcon from "@mui/icons-material/Link";
99
import setLogs from "../../../../actions/setLogs";
10-
import { ApiSelectorStyled } from "../../styled";
10+
import {
11+
ApiSelectorButton,
12+
ApiSelectorInput,
13+
ApiSelectorStyled,
14+
} from "../../styled";
1115

1216
export function ApiSelector() {
1317
const apiUrl = useSelector((store) => store.apiUrl);
@@ -55,22 +59,26 @@ export function ApiSelector() {
5559

5660
return (
5761
<ApiSelectorStyled>
58-
<button
59-
title={"Set API URL"}
60-
className={"toggle-url"}
61-
onClick={handleApiUrlOpen}
62-
>
62+
<ApiSelectorButton title={"Set API URL"} onClick={handleApiUrlOpen}>
6363
<LinkIcon fontSize={"small"} />
64-
</button>
64+
<span
65+
style={{
66+
color: apiError ? "orangered" : "green",
67+
}}
68+
>
69+
70+
</span>
71+
</ApiSelectorButton>
6572
{apiSelectorOpen ? (
6673
<div className={"selector"}>
6774
<span className={"label"}>{API_URL}</span>
68-
<input
69-
className={"url"}
75+
<ApiSelectorInput
7076
value={editedUrl}
7177
onChange={handleIntputChange}
7278
/>
73-
<button onClick={onUrlSubmit}>{"save"}</button>
79+
<ApiSelectorButton onClick={onUrlSubmit}>
80+
{"save"}
81+
</ApiSelectorButton>
7482
</div>
7583
) : null}
7684
</ApiSelectorStyled>

Diff for: src/components/StatusBar/components/statusbarselectors/StatusBarSelectors.js

+2-18
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
import { useSelector } from "react-redux";
1+
22
import { useState } from "react";
3-
import { setQueryLimit, setQueryStep } from "../../../../actions";
43
import { LocalizationProvider } from "@mui/lab";
54
import AdapterDateFns from "@mui/lab/AdapterDateFns";
6-
import { StatusBarInput } from "../statusbarinput/StatusBarInput";
75
import { DateRangePicker } from "../daterangepicker";
86
import CopyLinkButton from "../copylinkbutton/CopyLinkButton";
97

108
export function StatusBarSelectors() {
11-
const queryLimit = useSelector((store) => store.limit);
12-
const queryStep = useSelector((store) => store.step);
9+
1310
const [open, setOpen] = useState();
1411

1512
const isOpen = (e) => {
@@ -22,19 +19,6 @@ export function StatusBarSelectors() {
2219
<div className={"status-options"}>
2320
<div className={"status-selectors"}>
2421
<CopyLinkButton />
25-
26-
<StatusBarInput
27-
label={"Limit"}
28-
value={queryLimit}
29-
dispatchAction={setQueryLimit}
30-
type={"limit"}
31-
/>
32-
<StatusBarInput
33-
label={"Step"}
34-
value={queryStep}
35-
dispatchAction={setQueryStep}
36-
type={"limit"}
37-
/>
3822
</div>
3923

4024
<DateRangePicker isOpen={isOpen} />

Diff for: src/components/StatusBar/index.js

+4-27
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,11 @@
11
import { ApiSelector } from "./components/apiselector/ApiSelector";
22
import { StatusBarSelectors } from "./components/statusbarselectors/StatusBarSelectors";
33
import Logo from "./assets/cloki-logo.png";
4+
import { StatusBarCont, StatusCont } from "./styled";
5+
import ClokiMenu from "../../plugins/settingsmenu/Menu";
46

5-
import { useSelector, useDispatch } from "react-redux";
6-
import { setSettingsMenuOpen } from "./actions/setMenuSettingsOpen";
7-
import DisplaySettingsIcon from "@mui/icons-material/DisplaySettings";
8-
import { MenuButton, StatusBarCont, StatusCont } from "./styled";
9-
import TimePickerButton from "./components/timepickerbutton/TimePickerButton";
10-
import { DateRangePicker } from "./components/daterangepicker";
11-
import { useState } from "react";
127

138
export default function StatusBar() {
14-
const dispatch = useDispatch();
15-
const menuOpen = useSelector((store) => store.settingsMenuOpen);
16-
const [open, setOpen] = useState();
17-
18-
const isOpen = (e) => {
19-
e?.preventDefault();
20-
setOpen(!open);
21-
};
22-
23-
function openSettings() {
24-
const shouldOpen = menuOpen ? false : true;
25-
26-
dispatch(setSettingsMenuOpen(shouldOpen));
27-
}
28-
299
return (
3010
<StatusBarCont>
3111
<div className="logo-section">
@@ -37,15 +17,12 @@ export default function StatusBar() {
3717
/>
3818

3919
<ApiSelector />
40-
{/* <TimePickerButton
41-
/> */}
4220
</div>
4321

4422
<StatusCont>
4523
<StatusBarSelectors />
46-
<MenuButton isActive={menuOpen} onClick={openSettings}>
47-
<DisplaySettingsIcon />
48-
</MenuButton>
24+
25+
<ClokiMenu/>
4926
</StatusCont>
5027
</StatusBarCont>
5128
);

0 commit comments

Comments
 (0)