1
0
Fork 0
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:
Ash Keel 2023-04-20 18:02:54 +02:00
parent f7aeb91cc8
commit e8964f8d0c
No known key found for this signature in database
GPG key ID: BAD8D93E7314ED3E
18 changed files with 60 additions and 45 deletions

View 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 />;
}

View file

@ -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(

View file

@ -71,4 +71,5 @@ function AlertContent({
);
}
export default React.memo(AlertContent);
const PureAlertContent = React.memo(AlertContent);
export default PureAlertContent;

View file

@ -19,4 +19,5 @@ function BrowserLink(props: React.AnchorHTMLAttributes<HTMLAnchorElement>) {
);
}
export default React.memo(BrowserLink);
const PureBrowserLink = React.memo(BrowserLink);
export default PureBrowserLink;

View file

@ -37,4 +37,5 @@ function DefinitionTable({ entries }: DefinitionTableProps) {
);
}
export default React.memo(DefinitionTable);
const PureDefinitionTable = React.memo(DefinitionTable);
export default PureDefinitionTable;

View file

@ -45,4 +45,5 @@ function DialogContent({
);
}
export default React.memo(DialogContent);
const PureDialogContent = React.memo(DialogContent);
export default PureDialogContent;

View file

@ -429,4 +429,5 @@ function LogViewer() {
);
}
export default React.memo(LogViewer);
const PureLogViewer = React.memo(LogViewer);
export default PureLogViewer;

View file

@ -156,4 +156,5 @@ function PageList({
);
}
export default React.memo(PageList);
const PurePageList = React.memo(PageList);
export default PurePageList;

View file

@ -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);

View file

@ -91,4 +91,5 @@ function MultiInput({
);
}
export default React.memo(MultiInput);
const PureMultiInput = React.memo(MultiInput);
export default PureMultiInput;

View file

@ -22,4 +22,5 @@ function PasswordField(
);
}
export default React.memo(PasswordField);
const PurePasswordField = React.memo(PasswordField);
export default PurePasswordField;

View file

@ -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;

View file

@ -31,4 +31,5 @@ function SaveButton(
}
}
export default React.memo(SaveButton);
const PureSaveButton = React.memo(SaveButton);
export default PureSaveButton;

View 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' };

View file

@ -28,4 +28,5 @@ function RevealLink({ value, setter }: RevealLinkProps) {
);
}
export default React.memo(RevealLink);
const PureRevealLink = React.memo(RevealLink);
export default PureRevealLink;

View file

@ -61,4 +61,5 @@ function Scrollbar({
);
}
export default React.memo(Scrollbar);
const PureScrollbar = React.memo(Scrollbar);
export default PureScrollbar;

View file

@ -33,4 +33,5 @@ function WIP(): React.ReactElement {
);
}
export default React.memo(WIP);
const PureWIP = React.memo(WIP);
export default PureWIP;

View file

@ -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,