diff --git a/src/actions/fetch.js b/src/actions/fetch.js index a6cd5cf..68fb38a 100644 --- a/src/actions/fetch.js +++ b/src/actions/fetch.js @@ -200,7 +200,7 @@ export async function requestHistoricalTimes(day, canvasId) { } const times = await response.json(); const parsedTimes = times - .map((a) => `${a.substr(0, 2)}:${a.substr(-2, 2)}`); + .map((a) => `${a.substring(0, 2)}:${a.substring(2)}`); return [ '00:00', ...parsedTimes, diff --git a/src/components/ChatMessage.jsx b/src/components/ChatMessage.jsx index 8b29d24..eaf5f38 100644 --- a/src/components/ChatMessage.jsx +++ b/src/components/ChatMessage.jsx @@ -96,7 +96,7 @@ function ChatMessage({ {txt} ); @@ -105,7 +105,7 @@ function ChatMessage({ {txt} ); diff --git a/src/components/HistorySelect.jsx b/src/components/HistorySelect.jsx index 21962d3..a42c60a 100644 --- a/src/components/HistorySelect.jsx +++ b/src/components/HistorySelect.jsx @@ -17,12 +17,12 @@ function stringToDate(dateString) { if (!dateString) return null; // YYYYMMDD // eslint-disable-next-line max-len - return `${dateString.substr(0, 4)}-${dateString.substr(4, 2)}-${dateString.substr(6, 2)}`; + return `${dateString.substring(0, 4)}-${dateString.substring(4, 6)}-${dateString.substring(6)}`; } function stringToTime(timeString) { if (!timeString) return null; - return `${timeString.substr(0, 2)}:${timeString.substr(2, 2)}`; + return `${timeString.substring(0, 2)}:${timeString.substring(2)}`; } const HistorySelect = () => { @@ -47,7 +47,7 @@ const HistorySelect = () => { const dispatch = useDispatch(); const setTime = useCallback((date, time) => { - const timeString = time.substr(0, 2) + time.substr(-2, 2); + const timeString = time.substring(0, 2) + time.substring(3, 5); const dateString = dateToString(date); dispatch(selectHistoricalTime(dateString, timeString)); }, [dispatch]); diff --git a/src/components/Modtools.jsx b/src/components/Modtools.jsx index d005a81..c70c3cc 100644 --- a/src/components/Modtools.jsx +++ b/src/components/Modtools.jsx @@ -7,7 +7,7 @@ import React, { useState, useEffect } from 'react'; import { useSelector, shallowEqual } from 'react-redux'; import { t } from 'ttag'; -import { getToday } from '../core/utils'; +import { getToday, dateToString } from '../core/utils'; const keptState = { coords: null, @@ -67,7 +67,7 @@ async function submitRollback( callback, ) { const data = new FormData(); - const timeString = date.substr(0, 4) + date.substr(5, 2) + date.substr(8, 2); + const timeString = dateToString(date); data.append('rollback', timeString); data.append('canvasid', canvas); data.append('ulcoor', tlcoords); diff --git a/src/controls/keypress.js b/src/controls/keypress.js index b7d5c71..8272237 100644 --- a/src/controls/keypress.js +++ b/src/controls/keypress.js @@ -54,7 +54,7 @@ function onKeyPress(event: KeyboardEvent) { if (!key.startsWith('Key')) { return; } - key = key.substr(-1).toLowerCase(); + key = key.slice(-1).toLowerCase(); } switch (key) { diff --git a/src/core/ChatProvider.js b/src/core/ChatProvider.js index 174912e..c3962c8 100644 --- a/src/core/ChatProvider.js +++ b/src/core/ChatProvider.js @@ -233,7 +233,7 @@ export class ChatProvider { adminCommands(message: string, channelId: number) { // admin commands const cmdArr = message.split(' '); - const cmd = cmdArr[0].substr(1); + const cmd = cmdArr[0].substring(1); const args = cmdArr.slice(1); switch (cmd) { case 'mute': { @@ -460,7 +460,8 @@ export class ChatProvider { } async mute(plainName, channelId, timeMin = null) { - const name = (plainName.startsWith('@')) ? plainName.substr(1) : plainName; + const name = (plainName.startsWith('@')) + ? plainName.substring(1) : plainName; const id = await User.name2Id(name); if (!id) { return `Couldn't find user ${name}`; @@ -489,7 +490,8 @@ export class ChatProvider { } async unmute(plainName, channelId) { - const name = (plainName.startsWith('@')) ? plainName.substr(1) : plainName; + const name = (plainName.startsWith('@')) + ? plainName.substring(1) : plainName; const id = await User.name2Id(name); if (!id) { return `Couldn't find user ${name}`; diff --git a/src/core/utils.js b/src/core/utils.js index 18de6cc..7101e5a 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -47,7 +47,7 @@ export function clamp(n, min, max) { */ export function dateToString(date) { // YYYY-MM-DD - return date.substr(0, 4) + date.substr(5, 2) + date.substr(8, 2); + return ate.substring(0, 4) + date.substring(5, 7) + date.substring(8) } /* @@ -291,9 +291,9 @@ export function setBrightness(hex, dark: boolean = false) { hex = hex.replace(/(.)/g, '$1$1'); } - let r = Math.floor(parseInt(hex.substr(0, 2), 16) / 2); - let g = Math.floor(parseInt(hex.substr(2, 2), 16) / 2); - let b = Math.floor(parseInt(hex.substr(4, 2), 16) / 2); + let r = Math.floor(parseInt(hex.substring(0, 2), 16) / 2); + let g = Math.floor(parseInt(hex.substring(2, 4), 16) / 2); + let b = Math.floor(parseInt(hex.substring(4, 6), 16) / 2); if (dark) { r += 128; g += 128; diff --git a/src/reducers/windows.js b/src/reducers/windows.js index 8920ed8..5369007 100644 --- a/src/reducers/windows.js +++ b/src/reducers/windows.js @@ -646,7 +646,7 @@ export default function windows( msg, } = action; let { inputMessage } = state.args[windowId]; - const lastChar = inputMessage.substr(-1); + const lastChar = inputMessage.slice(-1); const pad = (lastChar && lastChar !== ' ') ? ' ' : ''; inputMessage += pad + msg; return { diff --git a/src/ui/InfiniteGridHelper.js b/src/ui/InfiniteGridHelper.js index d7d9af7..2903e96 100644 --- a/src/ui/InfiniteGridHelper.js +++ b/src/ui/InfiniteGridHelper.js @@ -16,7 +16,7 @@ export default class InfiniteGridHelper extends THREE.Mesh { size2 = size2 || 100; distance = distance || 8000; - const planeAxes = axes.substr(0, 2); + const planeAxes = axes.substring(0, 2); const geometry = new THREE.PlaneBufferGeometry(2, 2, 1, 1); const material = new THREE.ShaderMaterial({