From 2c948d5bfa439cf82e4adeaa602142c967edaf66 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 1 Jan 2023 04:22:34 +0100 Subject: [PATCH] Created the DomainContext.jsx --- .../common/contexts/Domain/DomainContext.jsx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 admin/src/common/contexts/Domain/DomainContext.jsx diff --git a/admin/src/common/contexts/Domain/DomainContext.jsx b/admin/src/common/contexts/Domain/DomainContext.jsx new file mode 100644 index 0000000..72aff85 --- /dev/null +++ b/admin/src/common/contexts/Domain/DomainContext.jsx @@ -0,0 +1,33 @@ +import React, {createContext, useEffect, useState} from "react"; +import {jsonRequest} from "@/common/utils/RequestUtil"; + +export const DomainContext = createContext({}); + +export const DomainProvider = (props) => { + + const [currentDomain, setCurrentDomain] = useState(localStorage.getItem("domain") || window.location.host); + const [domains, setDomains] = useState([]); + + const updateDomains = () => jsonRequest(`/domains`) + .then(json => setDomains(json)); + + const updateCurrentDomain = (domain) => { + setCurrentDomain(domain); + localStorage.setItem("domain", domain); + } + + useEffect(() => { + updateDomains(); + }, []); + + useEffect(() => { + if (!domains.includes(currentDomain)) + updateCurrentDomain(domains.length !== 0 ? domains[0] : window.location.host); + }, [domains]); + + return ( + + {props.children} + + ) +} \ No newline at end of file