aboutsummaryrefslogtreecommitdiff
path: root/src/util.ts
diff options
context:
space:
mode:
authorTerry Truong <terry06890@gmail.com>2022-06-27 14:26:34 +1000
committerTerry Truong <terry06890@gmail.com>2022-06-27 14:26:34 +1000
commit2b9cb003fbcf2a6aa2cc6b340a439e7e09c72aad (patch)
treec9ddedc074d11bdd8d434ed58579a08e9f3f68f8 /src/util.ts
parentca08089c004e9714753b5dcf8b60ce3c0902ae34 (diff)
Add getServerResponse()
Diffstat (limited to 'src/util.ts')
-rw-r--r--src/util.ts56
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;
-}