713 lines
40 KiB
JavaScript
713 lines
40 KiB
JavaScript
|
"use strict";
|
||
|
exports.id = 913;
|
||
|
exports.ids = [913];
|
||
|
exports.modules = {
|
||
|
|
||
|
/***/ 5484:
|
||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
|
||
|
|
||
|
// EXPORTS
|
||
|
__webpack_require__.d(__webpack_exports__, {
|
||
|
"Z": () => (/* binding */ AdminUserBlock)
|
||
|
});
|
||
|
|
||
|
// EXTERNAL MODULE: external "react/jsx-runtime"
|
||
|
var jsx_runtime_ = __webpack_require__(997);
|
||
|
// EXTERNAL MODULE: external "react"
|
||
|
var external_react_ = __webpack_require__(6689);
|
||
|
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
||
|
// EXTERNAL MODULE: ./components/general/LoadingBlock.jsx
|
||
|
var LoadingBlock = __webpack_require__(5264);
|
||
|
// EXTERNAL MODULE: external "@mui/icons-material/CottageTwoTone"
|
||
|
var CottageTwoTone_ = __webpack_require__(386);
|
||
|
// EXTERNAL MODULE: ./components/general/ui/ButtonGroup.jsx
|
||
|
var ButtonGroup = __webpack_require__(5449);
|
||
|
// EXTERNAL MODULE: external "lucide-react"
|
||
|
var external_lucide_react_ = __webpack_require__(2423);
|
||
|
;// CONCATENATED MODULE: ./layouts/components/AdminUserDropdown.jsx
|
||
|
// @ts-check
|
||
|
/**
|
||
|
* ==============================================================================
|
||
|
* Imports
|
||
|
* ==============================================================================
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
|
||
|
* Admin User Dropdown
|
||
|
* ==============================================================================
|
||
|
* @param {object} props
|
||
|
* @param {import("@/package-shared/types").UserType} props.user
|
||
|
*/ function AdminUserDropdown({ user }) {
|
||
|
/**
|
||
|
* Get Contexts
|
||
|
*
|
||
|
* @abstract { React.useContext }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Javascript Variables
|
||
|
*
|
||
|
* @abstract Non hook variables and functions
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* React Hooks
|
||
|
*
|
||
|
* @abstract { useState, useEffect, useRef, etc ... }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Function Return
|
||
|
*
|
||
|
* @abstract Main Function Return
|
||
|
*/ return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "dropdown right-aligned",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,jsx_runtime_.jsxs)("a", {
|
||
|
href: "/admin",
|
||
|
className: "button outlined gray more-padding relative z-20 mb-2",
|
||
|
children: [
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx(external_lucide_react_.CircleGauge, {
|
||
|
size: 18,
|
||
|
className: "mr-1"
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("span", {
|
||
|
children: "Dashboard"
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
false ? /*#__PURE__*/ 0 : null,
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("a", {
|
||
|
href: `/admin/${user?.id}/settings`,
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Settings"
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("a", {
|
||
|
href: "/logout",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Logout"
|
||
|
})
|
||
|
]
|
||
|
});
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
}
|
||
|
|
||
|
// EXTERNAL MODULE: ./components/general/ThemeSelector.jsx
|
||
|
var ThemeSelector = __webpack_require__(4981);
|
||
|
;// CONCATENATED MODULE: ./layouts/components/AdminLayout/AdminUserBlock.jsx
|
||
|
// @ts-check
|
||
|
/**
|
||
|
* ==============================================================================
|
||
|
* Imports
|
||
|
* ==============================================================================
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
|
||
|
* ==============================================================================
|
||
|
* Main Component { Functional }
|
||
|
* ==============================================================================
|
||
|
* @param {object} props - React component props
|
||
|
* @param {import("@/package-shared/types").UserType | null} [props.activeUser] - user object
|
||
|
* @param {boolean} [props.noModeSelector] - Add dark mode toggler or not
|
||
|
*/ function AdminUserBlock({ activeUser , noModeSelector }) {
|
||
|
/**
|
||
|
* Get Contexts
|
||
|
*
|
||
|
* @abstract { React.useContext }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Javascript Variables
|
||
|
*
|
||
|
* @abstract Non hook variables and functions
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* React Hooks
|
||
|
*
|
||
|
* @abstract { useState, useEffect, useRef, etc ... }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Function Return
|
||
|
*
|
||
|
* @abstract Main Function Return
|
||
|
*/ if (!activeUser?.logged_in_status) {
|
||
|
return /*#__PURE__*/ jsx_runtime_.jsx((external_react_default()).Fragment, {});
|
||
|
}
|
||
|
return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "gap-2 flex-col-reverse xl:flex-row gap-y-6 w-full xl:w-auto py-2 whitespace-nowrap",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "ml-auto dropdown-wrapper p-0 xl:p-4 hover:bg-slate-100 hidden",
|
||
|
children: [
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("a", {
|
||
|
href: `/admin/${activeUser?.id}/notifications`,
|
||
|
className: "flex items-center justify-center",
|
||
|
children: /*#__PURE__*/ jsx_runtime_.jsx("img", {
|
||
|
src: "/images/notification-icon.svg",
|
||
|
alt: "Notification Icon",
|
||
|
width: 20,
|
||
|
className: "opacity-50"
|
||
|
})
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "dropdown mt-0 xl:-mt-3 gap-2",
|
||
|
children: [
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("span", {
|
||
|
className: "text-slate-400",
|
||
|
children: "Notifications"
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx(LoadingBlock/* default */.Z, {
|
||
|
position: "relative",
|
||
|
width: "20px"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "ml-auto dropdown-wrapper",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "avatar",
|
||
|
style: {
|
||
|
width: "36px",
|
||
|
height: "36px"
|
||
|
},
|
||
|
children: [
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("img", {
|
||
|
src: activeUser?.image,
|
||
|
alt: "User Image",
|
||
|
width: 35,
|
||
|
className: "w-full h-full object-cover rounded-full"
|
||
|
}),
|
||
|
activeUser?.social_login ? /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
|
||
|
className: "sub-img",
|
||
|
children: [
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("img", {
|
||
|
src: (()=>{
|
||
|
if (activeUser?.social_platform?.match(/facebook/i)) return "/images/facebook.png";
|
||
|
if (activeUser?.social_platform?.match(/google/i)) return "/images/google.png";
|
||
|
if (activeUser?.social_platform?.match(/github/i)) return "/images/github.png";
|
||
|
return "/images/sharing.png";
|
||
|
})(),
|
||
|
alt: "",
|
||
|
className: "flex dark:hidden"
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("img", {
|
||
|
src: (()=>{
|
||
|
if (activeUser?.social_platform?.match(/facebook/i)) return "/images/facebook.png";
|
||
|
if (activeUser?.social_platform?.match(/google/i)) return "/images/google.png";
|
||
|
if (activeUser?.social_platform?.match(/github/i)) return "/images/github-white.png";
|
||
|
return "/images/sharing.png";
|
||
|
})(),
|
||
|
alt: "",
|
||
|
className: "hidden dark:flex"
|
||
|
})
|
||
|
]
|
||
|
}) : /*#__PURE__*/ jsx_runtime_.jsx((external_react_default()).Fragment, {})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx("span", {
|
||
|
className: "dark:text-white",
|
||
|
children: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("b", {
|
||
|
children: [
|
||
|
activeUser?.first_name,
|
||
|
" ",
|
||
|
activeUser?.last_name
|
||
|
]
|
||
|
})
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx(external_lucide_react_.ChevronDown, {
|
||
|
size: 20
|
||
|
}),
|
||
|
/*#__PURE__*/ jsx_runtime_.jsx(AdminUserDropdown, {
|
||
|
user: activeUser
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
!noModeSelector && /*#__PURE__*/ jsx_runtime_.jsx("div", {
|
||
|
className: "ml-2",
|
||
|
children: /*#__PURE__*/ jsx_runtime_.jsx(ThemeSelector/* default */.Z, {})
|
||
|
})
|
||
|
]
|
||
|
});
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
}
|
||
|
|
||
|
|
||
|
/***/ }),
|
||
|
|
||
|
/***/ 5281:
|
||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
|
||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||
|
/* harmony export */ "Z": () => (/* binding */ Footer)
|
||
|
/* harmony export */ });
|
||
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
||
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
||
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
|
||
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
||
|
/* harmony import */ var _components_general_Logo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4017);
|
||
|
// @ts-check
|
||
|
/**
|
||
|
* ==============================================================================
|
||
|
* Imports
|
||
|
* ==============================================================================
|
||
|
*/
|
||
|
|
||
|
|
||
|
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
|
||
|
* ==============================================================================
|
||
|
* Main Component { Functional }
|
||
|
* ==============================================================================
|
||
|
* @param {object} props - React component props
|
||
|
*/ function Footer(props) {
|
||
|
/**
|
||
|
* Get Contexts
|
||
|
*
|
||
|
* @abstract { React.useContext }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Javascript Variables
|
||
|
*
|
||
|
* @abstract Non hook variables and functions
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* React Hooks
|
||
|
*
|
||
|
* @abstract { useState, useEffect, useRef, etc ... }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Function Return
|
||
|
*
|
||
|
* @abstract Main Function Return
|
||
|
*/ return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("footer", {
|
||
|
className: "p-8 md:p-10 w-full flex flex-col items-center",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "main-container items-start justify-between gap-6 flex-wrap flex-col md:flex-row pt-6",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex flex-col items-start gap-6",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_general_Logo__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
||
|
className: "font-normal max-w-sm text-sm text-left",
|
||
|
children: "Datasquirel is a fast efficient cloud-based data store that takes away the entire hassle of data management."
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex-col items-start",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h4", {
|
||
|
className: "m-0",
|
||
|
children: "Features"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/database-reference/data-types",
|
||
|
className: "text-slate-600",
|
||
|
children: "Database Schema"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/database-reference/querying-data",
|
||
|
className: "text-slate-600",
|
||
|
children: "SQL Queries"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/gui-reference/upload-media",
|
||
|
className: "text-slate-600",
|
||
|
children: "Media Storage"
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex-col items-start",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h4", {
|
||
|
className: "m-0",
|
||
|
children: "Docs"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/quick-start",
|
||
|
className: "text-slate-600",
|
||
|
children: "Quick Start Guide"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/api-reference",
|
||
|
className: "text-slate-600",
|
||
|
children: "API Guide"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/gui-reference",
|
||
|
className: "text-slate-600",
|
||
|
children: "GUI Interface"
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex-col items-start",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("h4", {
|
||
|
className: "m-0",
|
||
|
children: "Company"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/about",
|
||
|
className: "text-slate-600",
|
||
|
children: "About Us"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/terms",
|
||
|
className: "text-slate-600",
|
||
|
children: "Terms and Conditions"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/privacy",
|
||
|
className: "text-slate-600",
|
||
|
children: "Privacy Policy"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("hr", {
|
||
|
className: "my-10"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "container",
|
||
|
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("span", {
|
||
|
className: "text-sm text-slate-400 dark:text-slate-600",
|
||
|
children: [
|
||
|
new Date().getFullYear(),
|
||
|
" \xa9 Datasquirel. All rights reserved."
|
||
|
]
|
||
|
})
|
||
|
})
|
||
|
]
|
||
|
});
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
}
|
||
|
|
||
|
|
||
|
/***/ }),
|
||
|
|
||
|
/***/ 7108:
|
||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||
|
|
||
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||
|
/* harmony export */ "Z": () => (/* binding */ Header)
|
||
|
/* harmony export */ });
|
||
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
|
||
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
|
||
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
|
||
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
||
|
/* harmony import */ var _components_general_ThemeSelector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4981);
|
||
|
/* harmony import */ var _components_general_Logo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4017);
|
||
|
/* harmony import */ var _AdminLayout_AdminUserBlock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5484);
|
||
|
/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2423);
|
||
|
/* harmony import */ var lucide_react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lucide_react__WEBPACK_IMPORTED_MODULE_5__);
|
||
|
// @ts-check
|
||
|
/**
|
||
|
* ==============================================================================
|
||
|
* Imports
|
||
|
* ==============================================================================
|
||
|
*/
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /**
|
||
|
* ==============================================================================
|
||
|
* Main Component { Functional }
|
||
|
* ==============================================================================
|
||
|
* @param {object} props - React component props
|
||
|
* @param {import("@/package-shared/types").UserType | null} [props.user]
|
||
|
* @param {boolean} [props.darkBg]
|
||
|
* @param {boolean} [props.transparent]
|
||
|
*/ function Header({ user , darkBg , transparent }) {
|
||
|
/**
|
||
|
* Get Contexts
|
||
|
*
|
||
|
* @abstract { React.useContext }
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Javascript Variables
|
||
|
*
|
||
|
* @abstract Non hook variables and functions
|
||
|
*/ ////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* React Hooks
|
||
|
*
|
||
|
* @abstract { useState, useEffect, useRef, etc ... }
|
||
|
*/ const [activeUser, setActiveUser] = react__WEBPACK_IMPORTED_MODULE_1___default().useState(user?.logged_in_status ? user : null);
|
||
|
// const [activeUser, setActiveUser] = React.useState(user);
|
||
|
react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(()=>{
|
||
|
/** @type {*} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper");
|
||
|
window.addEventListener("click", (e)=>{
|
||
|
/** @type {*} */ const clickTarget = e.target;
|
||
|
if (clickTarget?.closest("#main-nav-content-wrapper") || clickTarget?.closest("#main-header-hamburger-button")) return;
|
||
|
if (!mainNavWrapper.classList.contains("hidden")) {
|
||
|
mainNavWrapper.classList.add("hidden");
|
||
|
}
|
||
|
});
|
||
|
const navLinks = document.querySelectorAll("nav a");
|
||
|
navLinks.forEach((/** @type {HTMLAnchorElement | *} */ link)=>{
|
||
|
if (link.pathname === window.location.pathname) {
|
||
|
if (link.href.match(/#/) || link.pathname.match(/http/)) return;
|
||
|
link.classList.add("active-page-link");
|
||
|
}
|
||
|
});
|
||
|
}, []);
|
||
|
react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(()=>{
|
||
|
if (user?.logged_in_status) {
|
||
|
setActiveUser(user);
|
||
|
}
|
||
|
}, [
|
||
|
user
|
||
|
]);
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
/**
|
||
|
* Function Return
|
||
|
*
|
||
|
* @abstract Main Function Return
|
||
|
*/ return /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("header", {
|
||
|
className: "w-full px-4 md:px-8 flex justify-center gap-4 " + (darkBg ? " shadow-slate-900/20 dark-content" : " shadow-slate-900/5") + (transparent ? "" : " bg-white dark:bg-slate-800 shadow-lg dark:shadow-black/10 z-50") + (user?.logged_in_status ? " py-4" : " py-6"),
|
||
|
style: {
|
||
|
zIndex: 700
|
||
|
},
|
||
|
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "container",
|
||
|
children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("nav", {
|
||
|
className: "w-full flex items-center justify-between gap-4 md:gap-10",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_general_Logo__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "hidden xl:flex flex-col items-stretch grow fixed xl:static top-0 right-0 p-4 xl:p-0 shadow-xl xl:shadow-none h-screen xl:h-auto overflow-auto xl:overflow-visible w-screen sl:w-auto xl:bg-transparent" + (transparent ? " bg-white xl:bg-transparent" : " bg-white dark:bg-slate-800"),
|
||
|
id: "main-nav-content-wrapper",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "items-center mb-2 flex xl:hidden",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/",
|
||
|
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("img", {
|
||
|
src: "/images/logo-icon-alt-2.png",
|
||
|
alt: "Logo Icon",
|
||
|
width: 37
|
||
|
})
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("button", {
|
||
|
className: "outlined gray ml-auto",
|
||
|
onClick: (e)=>{
|
||
|
/** @type {*} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper");
|
||
|
mainNavWrapper?.classList.toggle("hidden");
|
||
|
},
|
||
|
style: {
|
||
|
border: "none"
|
||
|
},
|
||
|
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
||
|
className: "font-semibold text-4xl",
|
||
|
children: "✕"
|
||
|
})
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex items-center grow flex-col-reverse xl:flex-row mb-10 xl:mb-0",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "flex-col xl:flex-row w-full gap-y-10 gap-x-6",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "dropdown-wrapper flex items-center gap-1",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("a", {
|
||
|
href: "/docs/gui-reference",
|
||
|
className: "relative z-10 flex items-center gap-2",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
||
|
children: "Features"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(lucide_react__WEBPACK_IMPORTED_MODULE_5__.ChevronDown, {
|
||
|
size: 20
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "dropdown",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/database-reference/data-types",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Database Schema"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/database-reference/querying-data",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Sql Queries"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/gui-reference/upload-media",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Media Storage"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "dropdown-wrapper flex items-center gap-1",
|
||
|
children: [
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("a", {
|
||
|
href: "/docs",
|
||
|
className: "relative z-10 flex items-center gap-2",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("span", {
|
||
|
children: "Docs"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(lucide_react__WEBPACK_IMPORTED_MODULE_5__.ChevronDown, {
|
||
|
size: 20
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "dropdown",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/quick-start",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Quick Start"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/api-reference",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "Api Guide"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/docs/gui-reference",
|
||
|
className: "button plain-text more-padding normal-weight",
|
||
|
children: "GUI Interface"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/about",
|
||
|
children: "About Us"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/pricing",
|
||
|
children: "Pricing"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/contact",
|
||
|
children: "Contact Us"
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
activeUser?.logged_in_status ? /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_AdminLayout_AdminUserBlock__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
||
|
activeUser: activeUser,
|
||
|
noModeSelector: true
|
||
|
}) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
|
||
|
className: "ml-auto w-full xl:w-auto justify-center",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/login",
|
||
|
className: "button outlined gray hidden xl:flex" + (darkBg ? " light" : ""),
|
||
|
children: "Login"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/login",
|
||
|
className: "button outlined gray flex xl:hidden",
|
||
|
children: "Login"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("a", {
|
||
|
href: "/create-account",
|
||
|
className: "button",
|
||
|
children: "Get Started"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "ml-0 xl:-ml-2",
|
||
|
children: /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_components_general_ThemeSelector__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {})
|
||
|
}),
|
||
|
/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("button", {
|
||
|
className: "bg-transparent w-16 p-4 gap-1.5 flex xl:hidden flex-col hover:bg-transparent transition-all",
|
||
|
onClick: (e)=>{
|
||
|
/** @type {*} */ const mainNavWrapper = document.getElementById("main-nav-content-wrapper");
|
||
|
mainNavWrapper?.classList.toggle("hidden");
|
||
|
},
|
||
|
style: {
|
||
|
minWidth: "50px",
|
||
|
backgroundColor: "transparent"
|
||
|
},
|
||
|
id: "main-header-hamburger-button",
|
||
|
"aria-label": "Mobile Hambutget Button",
|
||
|
children: [
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
|
||
|
}),
|
||
|
/*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
|
||
|
className: "w-full h-1 bg-slate-600 dark:bg-slate-400 rounded-full"
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
]
|
||
|
})
|
||
|
})
|
||
|
});
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
////////////////////////////////////////
|
||
|
}
|
||
|
|
||
|
|
||
|
/***/ })
|
||
|
|
||
|
};
|
||
|
;
|