mirror of
https://git.sr.ht/~ashkeel/strimertul
synced 2024-09-18 01:50:50 +00:00
refactor: fix lint issues
This commit is contained in:
parent
f7aeb91cc8
commit
e8964f8d0c
18 changed files with 60 additions and 45 deletions
23
frontend/src/AppWrapper.tsx
Normal file
23
frontend/src/AppWrapper.tsx
Normal file
|
@ -0,0 +1,23 @@
|
|||
import { IsFatalError } from '@wailsapp/go/main/App';
|
||||
import { EventsOn, EventsOff } from '@wailsapp/runtime/runtime';
|
||||
import { useState, useEffect } from 'react';
|
||||
import App from './ui/App';
|
||||
import ErrorWindow from './ui/ErrorWindow';
|
||||
|
||||
export default function AppWrapper() {
|
||||
const [fatalErrorEncountered, setFatalErrorStatus] = useState(false);
|
||||
useEffect(() => {
|
||||
void IsFatalError().then(setFatalErrorStatus);
|
||||
EventsOn('fatalError', () => {
|
||||
setFatalErrorStatus(true);
|
||||
});
|
||||
return () => {
|
||||
EventsOff('fatalError');
|
||||
};
|
||||
}, []);
|
||||
|
||||
if (fatalErrorEncountered) {
|
||||
return <ErrorWindow />;
|
||||
}
|
||||
return <App />;
|
||||
}
|
|
@ -1,9 +1,7 @@
|
|||
import { createRoot } from 'react-dom/client';
|
||||
import { Provider } from 'react-redux';
|
||||
import { HashRouter } from 'react-router-dom';
|
||||
import { StrictMode, useEffect, useState } from 'react';
|
||||
import { EventsOff, EventsOn } from '@wailsapp/runtime';
|
||||
import { IsFatalError } from '@wailsapp/go/main/App';
|
||||
import { StrictMode } from 'react';
|
||||
|
||||
import 'inter-ui/inter.css';
|
||||
import '@fontsource/space-mono/index.css';
|
||||
|
@ -11,30 +9,11 @@ import 'normalize.css/normalize.css';
|
|||
import './locale/setup';
|
||||
|
||||
import store from './store';
|
||||
import App from './ui/App';
|
||||
import ErrorWindow from './ui/ErrorWindow';
|
||||
import { globalStyles } from './ui/theme';
|
||||
import AppWrapper from './AppWrapper';
|
||||
|
||||
globalStyles();
|
||||
|
||||
function AppWrapper() {
|
||||
const [fatalErrorEncountered, setFatalErrorStatus] = useState(false);
|
||||
useEffect(() => {
|
||||
void IsFatalError().then(setFatalErrorStatus);
|
||||
EventsOn('fatalError', () => {
|
||||
setFatalErrorStatus(true);
|
||||
});
|
||||
return () => {
|
||||
EventsOff('fatalError');
|
||||
};
|
||||
}, []);
|
||||
|
||||
if (fatalErrorEncountered) {
|
||||
return <ErrorWindow />;
|
||||
}
|
||||
return <App />;
|
||||
}
|
||||
|
||||
const main = document.getElementById('main');
|
||||
const root = createRoot(main);
|
||||
root.render(
|
||||
|
|
|
@ -71,4 +71,5 @@ function AlertContent({
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(AlertContent);
|
||||
const PureAlertContent = React.memo(AlertContent);
|
||||
export default PureAlertContent;
|
||||
|
|
|
@ -19,4 +19,5 @@ function BrowserLink(props: React.AnchorHTMLAttributes<HTMLAnchorElement>) {
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(BrowserLink);
|
||||
const PureBrowserLink = React.memo(BrowserLink);
|
||||
export default PureBrowserLink;
|
||||
|
|
|
@ -37,4 +37,5 @@ function DefinitionTable({ entries }: DefinitionTableProps) {
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(DefinitionTable);
|
||||
const PureDefinitionTable = React.memo(DefinitionTable);
|
||||
export default PureDefinitionTable;
|
||||
|
|
|
@ -45,4 +45,5 @@ function DialogContent({
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(DialogContent);
|
||||
const PureDialogContent = React.memo(DialogContent);
|
||||
export default PureDialogContent;
|
||||
|
|
|
@ -429,4 +429,5 @@ function LogViewer() {
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(LogViewer);
|
||||
const PureLogViewer = React.memo(LogViewer);
|
||||
export default PureLogViewer;
|
||||
|
|
|
@ -156,4 +156,5 @@ function PageList({
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(PageList);
|
||||
const PurePageList = React.memo(PageList);
|
||||
export default PurePageList;
|
||||
|
|
|
@ -1,17 +1,13 @@
|
|||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { getInterval } from '~/lib/time';
|
||||
import { ComboBox, FlexRow, InputBox } from '../../theme';
|
||||
import { seconds, minutes, hours } from './units';
|
||||
|
||||
export interface TimeUnit {
|
||||
multiplier: number;
|
||||
unit: string;
|
||||
}
|
||||
|
||||
export const seconds = { multiplier: 1, unit: 'time.seconds' };
|
||||
export const minutes = { multiplier: 60, unit: 'time.minutes' };
|
||||
export const hours = { multiplier: 3600, unit: 'time.hours' };
|
||||
|
||||
export interface IntervalProps {
|
||||
active: boolean;
|
||||
value: number;
|
||||
|
@ -22,7 +18,7 @@ export interface IntervalProps {
|
|||
onChange?: (value: number) => void;
|
||||
}
|
||||
|
||||
function Interval({
|
||||
export default function Interval({
|
||||
id,
|
||||
active,
|
||||
value,
|
||||
|
@ -87,5 +83,3 @@ function Interval({
|
|||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default React.memo(Interval);
|
||||
|
|
|
@ -91,4 +91,5 @@ function MultiInput({
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(MultiInput);
|
||||
const PureMultiInput = React.memo(MultiInput);
|
||||
export default PureMultiInput;
|
||||
|
|
|
@ -22,4 +22,5 @@ function PasswordField(
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(PasswordField);
|
||||
const PurePasswordField = React.memo(PasswordField);
|
||||
export default PurePasswordField;
|
||||
|
|
|
@ -60,7 +60,7 @@ const RadioIndicator = styled(Indicator, {
|
|||
},
|
||||
});
|
||||
|
||||
export default function RadioGroup(props: RadioGroupProps & RootProps) {
|
||||
function RadioGroup(props: RadioGroupProps & RootProps) {
|
||||
return (
|
||||
<RadioRoot {...props}>
|
||||
{props.values.map(({ id, label }) => (
|
||||
|
@ -74,3 +74,6 @@ export default function RadioGroup(props: RadioGroupProps & RootProps) {
|
|||
</RadioRoot>
|
||||
);
|
||||
}
|
||||
|
||||
const PureRadioGroup = React.memo(RadioGroup);
|
||||
export default PureRadioGroup;
|
||||
|
|
|
@ -31,4 +31,5 @@ function SaveButton(
|
|||
}
|
||||
}
|
||||
|
||||
export default React.memo(SaveButton);
|
||||
const PureSaveButton = React.memo(SaveButton);
|
||||
export default PureSaveButton;
|
||||
|
|
3
frontend/src/ui/components/forms/units.tsx
Normal file
3
frontend/src/ui/components/forms/units.tsx
Normal file
|
@ -0,0 +1,3 @@
|
|||
export const seconds = { multiplier: 1, unit: 'time.seconds' };
|
||||
export const minutes = { multiplier: 60, unit: 'time.minutes' };
|
||||
export const hours = { multiplier: 3600, unit: 'time.hours' };
|
|
@ -28,4 +28,5 @@ function RevealLink({ value, setter }: RevealLinkProps) {
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(RevealLink);
|
||||
const PureRevealLink = React.memo(RevealLink);
|
||||
export default PureRevealLink;
|
||||
|
|
|
@ -61,4 +61,5 @@ function Scrollbar({
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(Scrollbar);
|
||||
const PureScrollbar = React.memo(Scrollbar);
|
||||
export default PureScrollbar;
|
||||
|
|
|
@ -33,4 +33,5 @@ function WIP(): React.ReactElement {
|
|||
);
|
||||
}
|
||||
|
||||
export default React.memo(WIP);
|
||||
const PureWIP = React.memo(WIP);
|
||||
export default PureWIP;
|
||||
|
|
|
@ -8,7 +8,8 @@ import { modules } from '~/store/api/reducer';
|
|||
import { TwitchBotTimer } from '~/store/api/types';
|
||||
import AlertContent from '../components/AlertContent';
|
||||
import DialogContent from '../components/DialogContent';
|
||||
import Interval, { hours, minutes } from '../components/forms/Interval';
|
||||
import Interval from '../components/forms/Interval';
|
||||
import { hours, minutes } from '../components/forms/units';
|
||||
import MultiInput from '../components/forms/MultiInput';
|
||||
import {
|
||||
Button,
|
||||
|
|
Loading…
Reference in a new issue