aboutsummaryrefslogtreecommitdiff
path: root/src/util.ts
diff options
context:
space:
mode:
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;
-}