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