summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web-shared/src/lib')
-rw-r--r--apps/web-shared/src/lib/configuration.ts26
-rw-r--r--apps/web-shared/src/lib/helpers.ts26
2 files changed, 36 insertions, 16 deletions
diff --git a/apps/web-shared/src/lib/configuration.ts b/apps/web-shared/src/lib/configuration.ts
index 188d615..0ed5cd4 100644
--- a/apps/web-shared/src/lib/configuration.ts
+++ b/apps/web-shared/src/lib/configuration.ts
@@ -1,7 +1,9 @@
-export const API_ADDRESS = "https://api.dev.greatoffice.life";
-export const PROJECTS_ADDRESS = "https://projects.dev.greatoffice.life";
-export const PORTAL_ADDRESS = "https://portal.dev.greatoffice.life";
-export const FRONTPAGE_ADDRESS = "https://greatoffice.life";
+export const BASE_DOMAIN = "greatoffice.life";
+export const DEV_BASE_DOMAIN = "localhost";
+export const API_ADDRESS = "https://api.dev." + BASE_DOMAIN;
+export const PROJECTS_ADDRESS = "https://projects.dev." + BASE_DOMAIN;
+export const PORTAL_ADDRESS = "https://portal.dev." + BASE_DOMAIN;
+export const FRONTPAGE_ADDRESS = "https://" + BASE_DOMAIN;
export const DEV_PORTAL_ADDRESS = "http://localhost:3001";
export const DEV_FRONTPAGE_ADDRESS = "http://localhost:3002";
export const DEV_API_ADDRESS = "http://localhost:5000";
@@ -9,19 +11,23 @@ export const DEV_PROJECTS_ADDRESS = "http://localhost:3000";
export const SECONDS_BETWEEN_SESSION_CHECK = 600;
export function projects_base(path: string = ""): string {
- return (is_development() ? DEV_PROJECTS_ADDRESS : PROJECTS_ADDRESS) + (path ? "/" + path : "/");
+ return (is_development() ? DEV_PROJECTS_ADDRESS : PROJECTS_ADDRESS) + (path !== "" ? "/" + path : "");
+}
+
+export function base_domain(path: string = ""): string {
+ return (is_development() ? DEV_BASE_DOMAIN : BASE_DOMAIN) + (path !== "" ? "/" + path : "");
}
export function frontpage_base(path: string = ""): string {
- return (is_development() ? DEV_FRONTPAGE_ADDRESS : FRONTPAGE_ADDRESS) + (path ? "/" + path : "/");
+ return (is_development() ? DEV_FRONTPAGE_ADDRESS : FRONTPAGE_ADDRESS) + (path !== "" ? "/" + path : "");
}
export function portal_base(path: string = ""): string {
- return (is_development() ? DEV_PORTAL_ADDRESS : PORTAL_ADDRESS) + (path ? "/" + path : "/");
+ return (is_development() ? DEV_PORTAL_ADDRESS : PORTAL_ADDRESS) + (path !== "" ? "/" + path : "");
}
export function api_base(path: string = ""): string {
- return (is_development() ? DEV_API_ADDRESS : API_ADDRESS) + (path ? "/" + path : "/");
+ return (is_development() ? DEV_API_ADDRESS : API_ADDRESS) + (path !== "" ? "/" + path : "");
}
export function is_development(): boolean {
@@ -33,6 +39,10 @@ export function is_debug(): boolean {
return localStorage.getItem(StorageKeys.debug) !== "true";
}
+export const CookieNames = {
+ theme: "go_theme"
+};
+
export const QueryKeys = {
labels: "labels",
categories: "categories",
diff --git a/apps/web-shared/src/lib/helpers.ts b/apps/web-shared/src/lib/helpers.ts
index acf74d7..f2d0cca 100644
--- a/apps/web-shared/src/lib/helpers.ts
+++ b/apps/web-shared/src/lib/helpers.ts
@@ -1,4 +1,4 @@
-import {StorageKeys} from "$shared/lib/configuration";
+import {base_domain, CookieNames, StorageKeys} from "$shared/lib/configuration";
import {TimeEntryDto} from "$shared/lib/models/TimeEntryDto";
import {UnwrappedEntryDateTime} from "$shared/lib/models/UnwrappedEntryDateTime";
import {Temporal} from "@js-temporal/polyfill";
@@ -36,14 +36,24 @@ export function is_norwegian_phone_number(value: string): boolean {
export function switch_theme() {
const html = document.querySelector("html");
- if (html) {
- if (html.dataset.theme === "dark") {
- html.dataset.theme = "light";
- } else {
- html.dataset.theme = "dark";
- }
- localStorage.setItem(StorageKeys.theme, html.dataset.theme);
+ if (html.dataset.theme === "dark") {
+ html.dataset.theme = "light";
+ } else {
+ html.dataset.theme = "dark";
}
+ set_cookie(CookieNames.theme, html.dataset.theme, base_domain());
+}
+
+export function get_cookie(name) {
+ const value = `; ${document.cookie}`;
+ const parts = value.split(`; ${name}=`);
+ if (parts.length === 2) return parts.pop().split(";").shift();
+}
+
+export function set_cookie(name, value, baseDomain = window.location.host) {
+ let asdf = name + "=" + encodeURIComponent(value) + (baseDomain ? ";domain=" + baseDomain : "");
+ console.log(asdf);
+ document.cookie = asdf;
}
export function unwrap_date_time_from_entry(entry: TimeEntryDto): UnwrappedEntryDateTime {