diff --git a/tgui/packages/tgui-dev-server/dreamseeker.ts b/tgui/packages/tgui-dev-server/dreamseeker.ts index 8e186ef3d82..90e26b914c4 100644 --- a/tgui/packages/tgui-dev-server/dreamseeker.ts +++ b/tgui/packages/tgui-dev-server/dreamseeker.ts @@ -37,13 +37,13 @@ export class DreamSeeker { const query = Object.keys(params) .map( (key) => - encodeURIComponent(key) + '=' + encodeURIComponent(params[key]), + `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`, ) .join('&'); logger.log( `topic call at ${this.client.defaults.baseURL}/dummy.htm?${query}`, ); - return this.client.get('/dummy.htm?' + query); + return this.client.get(`/dummy.htm?${query}`); } static async getInstancesByPids(pids: number[]): Promise { @@ -111,5 +111,5 @@ export class DreamSeeker { } function plural(word: string, n: number): string { - return n !== 1 ? word + 's' : word; + return n !== 1 ? `${word}s` : word; } diff --git a/tgui/packages/tgui-dev-server/link/retrace.ts b/tgui/packages/tgui-dev-server/link/retrace.ts index 0560c40aa56..6fd1bc27ab0 100644 --- a/tgui/packages/tgui-dev-server/link/retrace.ts +++ b/tgui/packages/tgui-dev-server/link/retrace.ts @@ -84,5 +84,5 @@ export function retrace(stack: string): string | undefined { }) .join('\n'); - return header + '\n' + mappedStack; + return `${header}\n${mappedStack}`; } diff --git a/tgui/packages/tgui-dev-server/reloader.ts b/tgui/packages/tgui-dev-server/reloader.ts index 19c7e27a27c..fdbb2aa066c 100644 --- a/tgui/packages/tgui-dev-server/reloader.ts +++ b/tgui/packages/tgui-dev-server/reloader.ts @@ -61,7 +61,7 @@ export async function findCacheRoot(): Promise { 'userpath', ); if (userpath) { - cacheRoot = userpath.replace(/\\$/, '').replace(/\\/g, '/') + '/cache'; + cacheRoot = `${userpath.replace(/\\$/, '').replace(/\\/g, '/')}/cache`; await onCacheRootFound(cacheRoot); return cacheRoot; } @@ -72,7 +72,7 @@ export async function findCacheRoot(): Promise { async function onCacheRootFound(cacheRoot: string): Promise { logger.log(`found cache at '${cacheRoot}'`); // Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 514. - await Bun.write(cacheRoot + '/dummy.htm', ''); + await Bun.write(`${cacheRoot}/dummy.htm`, ''); } export async function reloadByondCache(bundleDir: string): Promise { @@ -103,7 +103,7 @@ export async function reloadByondCache(bundleDir: string): Promise { try { // Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 515-516. - await Bun.write(cacheDir + '/dummy.htm', ''); + await Bun.write(`${cacheDir}/dummy.htm`, ''); // Copy assets for (const asset of assets) { diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx b/tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx index 9fdb4b6309f..8750ae0315b 100644 --- a/tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx +++ b/tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx @@ -98,7 +98,7 @@ export const NowPlayingWidget = (props) => { value={settings.adminMusicVolume} step={0.0025} stepPixelSize={1} - format={(value) => toFixed(value * 100) + '%'} + format={(value) => `${toFixed(value * 100)}%`} onChange={(e, value) => settings.update({ adminMusicVolume: value, diff --git a/tgui/packages/tgui-panel/chat/renderer.jsx b/tgui/packages/tgui-panel/chat/renderer.jsx index aa05f5af584..5ade0558f51 100644 --- a/tgui/packages/tgui-panel/chat/renderer.jsx +++ b/tgui/packages/tgui-panel/chat/renderer.jsx @@ -62,7 +62,7 @@ const findNearestScrollableParent = (startingNode) => { const createHighlightNode = (text, color) => { const node = document.createElement('span'); node.className = 'Chat__highlight'; - node.setAttribute('style', 'background-color:' + color); + node.setAttribute('style', `background-color:${color}`); node.textContent = text; return node; }; @@ -93,7 +93,7 @@ const handleImageError = (e) => { } const src = node.src; node.src = null; - node.src = src + '#' + attempts; + node.src = `${src}#${attempts}`; node.setAttribute('data-reload-n', attempts + 1); }, IMAGE_RETRY_DELAY); }; @@ -258,13 +258,13 @@ class ChatRenderer { } } const regexStr = regexExpressions.join('|'); - const flags = 'g' + (matchCase ? '' : 'i'); + const flags = `g${matchCase ? '' : 'i'}`; // We wrap this in a try-catch to ensure that broken regex doesn't break // the entire chat. try { // setting regex overrides matchword if (regexStr) { - highlightRegex = new RegExp('(' + regexStr + ')', flags); + highlightRegex = new RegExp(`(${regexStr})`, flags); } else { const pattern = `${matchWord ? '\\b' : ''}(${highlightWords.join( '|', @@ -603,7 +603,7 @@ class ChatRenderer { for (let i = 0; i < cssRules.length; i++) { const rule = cssRules[i]; if (rule && typeof rule.cssText === 'string') { - cssText += rule.cssText + '\n'; + cssText += `${rule.cssText}\n`; } } } @@ -612,7 +612,7 @@ class ChatRenderer { let messagesHtml = ''; for (const message of this.visibleMessages) { if (message.node) { - messagesHtml += message.node.outerHTML + '\n'; + messagesHtml += `${message.node.outerHTML}\n`; } } // Create a page diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index bca24f82524..59833af5798 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -360,7 +360,7 @@ export const sendAct = (action: string, payload: object = {}) => { const stringifiedPayload = JSON.stringify(payload); const urlSize = Object.entries({ - type: 'act/' + action, + type: `act/${action}`, payload: stringifiedPayload, tgui: 1, windowId: Byond.windowId, @@ -375,14 +375,14 @@ export const sendAct = (action: string, payload: object = {}) => { const id = `${Date.now()}`; globalStore?.dispatch(backendCreatePayloadQueue({ id, chunks })); Byond.sendMessage('oversizedPayloadRequest', { - type: 'act/' + action, + type: `act/${action}`, id, chunkCount: chunks.length, }); return; } - Byond.sendMessage('act/' + action, payload); + Byond.sendMessage(`act/${action}`, payload); }; type BackendState = { diff --git a/tgui/packages/tgui/debug/middleware.ts b/tgui/packages/tgui/debug/middleware.ts index 0c18a260209..e102362f8ff 100644 --- a/tgui/packages/tgui/debug/middleware.ts +++ b/tgui/packages/tgui/debug/middleware.ts @@ -65,7 +65,7 @@ export function relayMiddleware(store) { return (next) => (action) => { const { type, relayed } = action; if (type === openExternalBrowser.type) { - window.open(location.href + '?external', '_blank'); + window.open(`${location.href}?external`, '_blank'); return; } if (relayedTypes.includes(type) && !relayed && !externalBrowser) { diff --git a/tgui/packages/tgui/drag.ts b/tgui/packages/tgui/drag.ts index 2270abc8a05..f56cb438268 100644 --- a/tgui/packages/tgui/drag.ts +++ b/tgui/packages/tgui/drag.ts @@ -43,14 +43,14 @@ export const getWindowSize = (): [number, number] => [ export const setWindowPosition = (vec: [number, number]) => { const byondPos = vecAdd(vec, screenOffset); return Byond.winset(Byond.windowId, { - pos: byondPos[0] + ',' + byondPos[1], + pos: `${byondPos[0]},${byondPos[1]}`, }); }; // Set window size const setWindowSize = (vec: [number, number]) => { return Byond.winset(Byond.windowId, { - size: vec[0] + 'x' + vec[1], + size: `${vec[0]}x${vec[1]}`, }); }; diff --git a/tgui/packages/tgui/interfaces/AccountingConsole.tsx b/tgui/packages/tgui/interfaces/AccountingConsole.tsx index fb496815834..11d1fbdd0c1 100644 --- a/tgui/packages/tgui/interfaces/AccountingConsole.tsx +++ b/tgui/packages/tgui/interfaces/AccountingConsole.tsx @@ -82,7 +82,7 @@ const UsersScreen = (props) => { {PlayerAccounts.map((account) => (
diff --git a/tgui/packages/tgui/interfaces/AdminBookViewer.tsx b/tgui/packages/tgui/interfaces/AdminBookViewer.tsx index 857ce71e7af..994f045d66f 100644 --- a/tgui/packages/tgui/interfaces/AdminBookViewer.tsx +++ b/tgui/packages/tgui/interfaces/AdminBookViewer.tsx @@ -12,7 +12,7 @@ type ViewerData = { export const AdminBookViewer = (_: any) => { const { data } = useBackend(); return ( - + {data.view_raw ? ( data.content diff --git a/tgui/packages/tgui/interfaces/AirAlarm/screens/Modes.tsx b/tgui/packages/tgui/interfaces/AirAlarm/screens/Modes.tsx index 3d74af73e8c..c74733a56cf 100644 --- a/tgui/packages/tgui/interfaces/AirAlarm/screens/Modes.tsx +++ b/tgui/packages/tgui/interfaces/AirAlarm/screens/Modes.tsx @@ -28,7 +28,7 @@ export function AirAlarmControlModes(props) { } onClick={() => act('mode', { mode: mode.path })} > - {mode.name + ' - ' + mode.desc} + {`${mode.name} - ${mode.desc}`} ))} diff --git a/tgui/packages/tgui/interfaces/AirAlarm/screens/Thresholds.tsx b/tgui/packages/tgui/interfaces/AirAlarm/screens/Thresholds.tsx index 956265f7710..1ea16cf1b2d 100644 --- a/tgui/packages/tgui/interfaces/AirAlarm/screens/Thresholds.tsx +++ b/tgui/packages/tgui/interfaces/AirAlarm/screens/Thresholds.tsx @@ -47,7 +47,7 @@ export function AirAlarmControlThresholds(props) { > {tlv.hazard_min === -1 ? 'Disabled' - : tlv.hazard_min + ' ' + tlv.unit} + : `${tlv.hazard_min} ${tlv.unit}`} @@ -67,7 +67,7 @@ export function AirAlarmControlThresholds(props) { > {tlv.warning_min === -1 ? 'Disabled' - : tlv.warning_min + ' ' + tlv.unit} + : `${tlv.warning_min} ${tlv.unit}`} @@ -87,7 +87,7 @@ export function AirAlarmControlThresholds(props) { > {tlv.warning_max === -1 ? 'Disabled' - : tlv.warning_max + ' ' + tlv.unit} + : `${tlv.warning_max} ${tlv.unit}`} @@ -107,7 +107,7 @@ export function AirAlarmControlThresholds(props) { > {tlv.hazard_max === -1 ? 'Disabled' - : tlv.hazard_max + ' ' + tlv.unit} + : `${tlv.hazard_max} ${tlv.unit}`} diff --git a/tgui/packages/tgui/interfaces/AlertModal.tsx b/tgui/packages/tgui/interfaces/AlertModal.tsx index 0058c463ea7..fd0f4657575 100644 --- a/tgui/packages/tgui/interfaces/AlertModal.tsx +++ b/tgui/packages/tgui/interfaces/AlertModal.tsx @@ -36,7 +36,7 @@ export function AlertModal(props) { // Stolen wholesale from fontcode function textWidth(text: string, font: string, fontsize: number) { // default font height is 12 in tgui - font = fontsize + 'px ' + font; + font = `${fontsize}px ${font}`; const c = document.createElement('canvas'); const ctx = c.getContext('2d') as CanvasRenderingContext2D; ctx.font = font; diff --git a/tgui/packages/tgui/interfaces/AnomalyRefinery.jsx b/tgui/packages/tgui/interfaces/AnomalyRefinery.jsx index 870bb5c2646..f99e1ea25e3 100644 --- a/tgui/packages/tgui/interfaces/AnomalyRefinery.jsx +++ b/tgui/packages/tgui/interfaces/AnomalyRefinery.jsx @@ -99,7 +99,7 @@ const CoreCompressorContent = (props) => { {requiredRadius - ? requiredRadius + ' tiles' + ? `${requiredRadius} tiles` : 'Implosion not possible.'} @@ -140,9 +140,11 @@ const CoreCompressorContent = (props) => { ' Kelvin'} - {(gasList[1].total_moles - ? String(gasList[1].pressure.toFixed(2)) - : '-') + ' kPa'} + {`${ + gasList[1].total_moles + ? String(gasList[1].pressure.toFixed(2)) + : '-' + } kPa`} @@ -165,9 +167,11 @@ const CoreCompressorContent = (props) => { ' Kelvin'} - {(gasList[1].total_moles - ? String(gasList[0].pressure.toFixed(2)) - : '-') + ' kPa'} + {`${ + gasList[1].total_moles + ? String(gasList[0].pressure.toFixed(2)) + : '-' + } kPa`} diff --git a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx index cae62cfec45..9ca71b63422 100644 --- a/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx +++ b/tgui/packages/tgui/interfaces/AutomatedAnnouncement.tsx @@ -89,12 +89,12 @@ export const AutomatedAnnouncement = (props) => { icon="info" tooltip={ (entry.generalTooltip - ? entry.generalTooltip + '\n' + ? `${entry.generalTooltip}\n` : '') + Object.entries(entry.varsAndTooltipsMap) .map( ([varName, tooltip]) => - '%' + varName + ' ' + tooltip, + `%${varName} ${tooltip}`, ) .join('\n') } diff --git a/tgui/packages/tgui/interfaces/BankMachine.tsx b/tgui/packages/tgui/interfaces/BankMachine.tsx index 5782a47d1f0..8cd08b91d15 100644 --- a/tgui/packages/tgui/interfaces/BankMachine.tsx +++ b/tgui/packages/tgui/interfaces/BankMachine.tsx @@ -25,7 +25,7 @@ export const BankMachine = (props) => { Authorized personnel only -
+
{ formatMoney(value) + ' cr'} + format={(value) => `${formatMoney(value)} cr`} /> } @@ -126,9 +126,9 @@ export const BlackMarketUplink = (props) => { - {item.amount ? item.amount + ' in stock' : 'Out of stock'} + {item.amount ? `${item.amount} in stock` : 'Out of stock'} - {formatMoney(item.cost) + ' cr'} + {`${formatMoney(item.cost)} cr`} diff --git a/tgui/packages/tgui/interfaces/LanguageMenu.tsx b/tgui/packages/tgui/interfaces/LanguageMenu.tsx index 6233087f6a3..498e1c57088 100644 --- a/tgui/packages/tgui/interfaces/LanguageMenu.tsx +++ b/tgui/packages/tgui/interfaces/LanguageMenu.tsx @@ -204,7 +204,7 @@ const OmnitongueToggle = (props) => { selected={omnitongue} onClick={() => act('toggle_omnitongue')} > - {'Omnitongue ' + (omnitongue ? 'Enabled' : 'Disabled')} + {`Omnitongue ${omnitongue ? 'Enabled' : 'Disabled'}`} ); }; diff --git a/tgui/packages/tgui/interfaces/LibraryConsole/components/PageSelect.tsx b/tgui/packages/tgui/interfaces/LibraryConsole/components/PageSelect.tsx index 651135e113f..9d753aa31c1 100644 --- a/tgui/packages/tgui/interfaces/LibraryConsole/components/PageSelect.tsx +++ b/tgui/packages/tgui/interfaces/LibraryConsole/components/PageSelect.tsx @@ -31,7 +31,7 @@ export function PageSelect(props) { { if (value !== '') { call_on_change(value); diff --git a/tgui/packages/tgui/interfaces/LibraryConsole/screens/Checkout.tsx b/tgui/packages/tgui/interfaces/LibraryConsole/screens/Checkout.tsx index 8a01cc77896..c0e3aa30c14 100644 --- a/tgui/packages/tgui/interfaces/LibraryConsole/screens/Checkout.tsx +++ b/tgui/packages/tgui/interfaces/LibraryConsole/screens/Checkout.tsx @@ -182,7 +182,7 @@ export function CheckoutEntries(props) { {entry.author} {entry.borrower} - {entry.overdue ? 'Overdue' : entry.due_in_minutes + ' Minutes'} + {entry.overdue ? 'Overdue' : `${entry.due_in_minutes} Minutes`} diff --git a/tgui/packages/tgui/interfaces/MODsuit.tsx b/tgui/packages/tgui/interfaces/MODsuit.tsx index cd4224a6863..c67c62b96e7 100644 --- a/tgui/packages/tgui/interfaces/MODsuit.tsx +++ b/tgui/packages/tgui/interfaces/MODsuit.tsx @@ -431,8 +431,8 @@ const SuitStatusSection = (props) => { content={ link_freq ? link_call - ? 'Calling (' + link_call + ')' - : 'Call (' + link_id + ')' + ? `Calling (${link_call})` + : `Call (${link_id})` : 'Frequency Unset' } onClick={() => act('call')} @@ -504,7 +504,7 @@ const ModParts = (props) => { return ( { > {player.name} {(!!player.is_you && ' (YOU)') || - (!!player.role_revealed && ' - ' + player.role_revealed)} + (!!player.role_revealed && ` - ${player.role_revealed}`)} {player.votes !== undefined && diff --git a/tgui/packages/tgui/interfaces/ManufacturingSorter.tsx b/tgui/packages/tgui/interfaces/ManufacturingSorter.tsx index fd55c993655..7924ef3bc38 100644 --- a/tgui/packages/tgui/interfaces/ManufacturingSorter.tsx +++ b/tgui/packages/tgui/interfaces/ManufacturingSorter.tsx @@ -64,7 +64,7 @@ export function ManufacturingSorter(props) { {filters.map((filter, i) => ( @@ -646,7 +646,7 @@ const SnowflakeRadio = (props) => { selected={speaker} icon={speaker ? 'volume-up' : 'volume-mute'} > - {(speaker ? 'En' : 'Dis') + 'abled'} + {`${speaker ? 'En' : 'Dis'}abled`} @@ -1029,7 +1029,7 @@ const SnowflakeGeneraor = (props) => { {fuel === null ? 'None' - : toFixed(fuel * sheet_material_amount, 0.1) + ' cm³'} + : `${toFixed(fuel * sheet_material_amount, 0.1)} cm³`} ); }; diff --git a/tgui/packages/tgui/interfaces/Microscope.tsx b/tgui/packages/tgui/interfaces/Microscope.tsx index d7d6b72d549..9932be2b156 100644 --- a/tgui/packages/tgui/interfaces/Microscope.tsx +++ b/tgui/packages/tgui/interfaces/Microscope.tsx @@ -118,9 +118,7 @@ const CellList = (props) => { fluid color="good" key={reagent} - tooltip={ - '+' + cell_line.supplementaries[reagent] + '% growth/sec.' - } + tooltip={`+${cell_line.supplementaries[reagent]}% growth/sec.`} > {reagent} @@ -133,7 +131,7 @@ const CellList = (props) => { fluid color="bad" key={reagent} - tooltip={cell_line.suppressives[reagent] + '% growth/sec.'} + tooltip={`${cell_line.suppressives[reagent]}% growth/sec.`} > {reagent} diff --git a/tgui/packages/tgui/interfaces/Newscaster.jsx b/tgui/packages/tgui/interfaces/Newscaster.jsx index 75aa086e63a..aac48aea49c 100644 --- a/tgui/packages/tgui/interfaces/Newscaster.jsx +++ b/tgui/packages/tgui/interfaces/Newscaster.jsx @@ -489,7 +489,7 @@ const NewscasterChannelSelector = (props) => { const { act, data } = useBackend(); const { channels = [], viewing_channel, wanted = [] } = data; return ( -
+
{wanted.map((activeWanted) => ( { } > {typeof cyborg.charge === 'number' - ? cyborg.charge + '%' + ? `${cyborg.charge}%` : 'Not Found'} diff --git a/tgui/packages/tgui/interfaces/NtosEmojipedia.tsx b/tgui/packages/tgui/interfaces/NtosEmojipedia.tsx index 74e8351920c..74228465c4e 100644 --- a/tgui/packages/tgui/interfaces/NtosEmojipedia.tsx +++ b/tgui/packages/tgui/interfaces/NtosEmojipedia.tsx @@ -27,7 +27,7 @@ export const NtosEmojipedia = (props) => {
{ {show_imprint ? login.IDName + ' ' + - (proposed_login.IDName - ? '(' + proposed_login.IDName + ')' - : '') + (proposed_login.IDName ? `(${proposed_login.IDName})` : '') : (proposed_login.IDName ?? '')} @@ -153,7 +151,7 @@ export const NtosMain = (props) => { {show_imprint ? login.IDJob + ' ' + - (proposed_login.IDJob ? '(' + proposed_login.IDJob + ')' : '') + (proposed_login.IDJob ? `(${proposed_login.IDJob})` : '') : (proposed_login.IDJob ?? '')} diff --git a/tgui/packages/tgui/interfaces/NtosNetChat.jsx b/tgui/packages/tgui/interfaces/NtosNetChat.jsx index ebe38dfd405..5a5d163460f 100644 --- a/tgui/packages/tgui/interfaces/NtosNetChat.jsx +++ b/tgui/packages/tgui/interfaces/NtosNetChat.jsx @@ -135,7 +135,7 @@ export const NtosNetChat = (props) => {