diff --git a/.eslintrc.yml b/.eslintrc.yml index b18f90af..001ba7f9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -76,6 +76,13 @@ rules: - 1 - "line-aligned" "react/jsx-closing-tag-location": 1 + # This setup is required to avoid a spam of errors when running eslint about React being + # used before it is defined. + # + # see https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md#how-to-use + no-use-before-define: 0 + "@typescript-eslint/no-use-before-define": + - warn overrides: - files: - "**/*.tsx" diff --git a/resources/scripts/components/server/WebsocketHandler.tsx b/resources/scripts/components/server/WebsocketHandler.tsx index 10b91dd4..724937f0 100644 --- a/resources/scripts/components/server/WebsocketHandler.tsx +++ b/resources/scripts/components/server/WebsocketHandler.tsx @@ -20,6 +20,18 @@ export default () => { const setServerStatus = ServerContext.useStoreActions(actions => actions.status.setServerStatus); const { setInstance, setConnectionState } = ServerContext.useStoreActions(actions => actions.socket); + const updateToken = (uuid: string, socket: Websocket) => { + if (updatingToken) return; + + updatingToken = true; + getWebsocketToken(uuid) + .then(data => socket.setToken(data.token, true)) + .catch(error => console.error(error)) + .then(() => { + updatingToken = false; + }); + }; + const connect = (uuid: string) => { const socket = new Websocket(); @@ -73,18 +85,6 @@ export default () => { .catch(error => console.error(error)); }; - const updateToken = (uuid: string, socket: Websocket) => { - if (updatingToken) return; - - updatingToken = true; - getWebsocketToken(uuid) - .then(data => socket.setToken(data.token, true)) - .catch(error => console.error(error)) - .then(() => { - updatingToken = false; - }); - }; - useEffect(() => { connected && setError(''); }, [ connected ]); diff --git a/resources/scripts/components/server/files/FileEditContainer.tsx b/resources/scripts/components/server/files/FileEditContainer.tsx index 012875ab..8a7feb9a 100644 --- a/resources/scripts/components/server/files/FileEditContainer.tsx +++ b/resources/scripts/components/server/files/FileEditContainer.tsx @@ -24,7 +24,7 @@ const LazyCodemirrorEditor = lazy(() => import(/* webpackChunkName: "editor" */' export default () => { const [ error, setError ] = useState(''); - const { action } = useParams(); + const { action } = useParams<{ action: 'new' | string }>(); const [ loading, setLoading ] = useState(action === 'edit'); const [ content, setContent ] = useState(''); const [ modalVisible, setModalVisible ] = useState(false);