From 2b9cb003fbcf2a6aa2cc6b340a439e7e09c72aad Mon Sep 17 00:00:00 2001 From: Terry Truong Date: Mon, 27 Jun 2022 14:26:34 +1000 Subject: Add getServerResponse() --- src/util.ts | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 19 deletions(-) (limited to 'src/util.ts') diff --git a/src/util.ts b/src/util.ts index 9a4b2b7..6d713a8 100644 --- a/src/util.ts +++ b/src/util.ts @@ -2,7 +2,25 @@ * General utility functions */ -export type Breakpoint = 'sm' | 'md' | 'lg'; // These represent screen sizes +// For server requests +export async function getServerResponse(path: string, params: string){ + // Construct URL + let url = new URL(window.location.href); + url.pathname = path; + url.search = params; + // Query server + let responseObj; + try { + let response = await fetch(url.toString()); + responseObj = await response.json(); + } catch (error){ + console.log(`Error with querying ${url}: ${error}`); + return null; + } + return responseObj; +} +// For detecting screen size +export type Breakpoint = 'sm' | 'md' | 'lg'; export function getBreakpoint(): Breakpoint { let w = window.innerWidth; if (w < 768){ @@ -13,6 +31,24 @@ export function getBreakpoint(): Breakpoint { return 'lg'; } } +// Dynamically obtains scroll bar width +// From stackoverflow.com/questions/13382516/getting-scroll-bar-width-using-javascript +export function getScrollBarWidth(){ + // Create hidden outer div + let outer = document.createElement('div'); + outer.style.visibility = 'hidden'; + outer.style.overflow = 'scroll'; + document.body.appendChild(outer); + // Create inner div + let inner = document.createElement('div'); + outer.appendChild(inner); + // Get width difference + let scrollBarWidth = outer.offsetWidth - inner.offsetWidth; + // Remove temporary divs + outer.parentNode!.removeChild(outer); + // + return scrollBarWidth; +} // Returns [0 ... len] export function range(len: number): number[] { @@ -115,21 +151,3 @@ export function capitalizeWords(str: string){ str = str.replace(/(\w)'S/, '$1\'s'); // Avoid cases like "traveler's tree" -> "Traveler'S Tree" return str; } -// Dynamically obtains scroll bar width -// From stackoverflow.com/questions/13382516/getting-scroll-bar-width-using-javascript -export function getScrollBarWidth(){ - // Create hidden outer div - let outer = document.createElement('div'); - outer.style.visibility = 'hidden'; - outer.style.overflow = 'scroll'; - document.body.appendChild(outer); - // Create inner div - let inner = document.createElement('div'); - outer.appendChild(inner); - // Get width difference - let scrollBarWidth = outer.offsetWidth - inner.offsetWidth; - // Remove temporary divs - outer.parentNode!.removeChild(outer); - // - return scrollBarWidth; -} -- cgit v1.2.3