diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-06-27 14:26:34 +1000 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-06-27 14:26:34 +1000 |
| commit | 2b9cb003fbcf2a6aa2cc6b340a439e7e09c72aad (patch) | |
| tree | c9ddedc074d11bdd8d434ed58579a08e9f3f68f8 /src/util.ts | |
| parent | ca08089c004e9714753b5dcf8b60ce3c0902ae34 (diff) | |
Add getServerResponse()
Diffstat (limited to 'src/util.ts')
| -rw-r--r-- | src/util.ts | 56 |
1 files changed, 37 insertions, 19 deletions
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; -} |
