// import dependencies
import { Tab } from '@mui/material';
import React, { useRef, useState } from 'react';
import { TabContext, TabList, TabPanel } from '@mui/lab';
import { colors, Page, Menu, MenuItem, ListItemIcon, ListItemText, Modal, Divider, Typography, InputAdornment, IconButton, Icon, View, Color, Box, TextField, Stack, Button, IconPicker, LoadingButton } from '../';
// let context
let DashupContext = null;
// create menu component
const DashupUIPageConfig = (props = {}) => {
// destruct
const { type, page, dashup, setPage, getPageStruct } = props;
// get struct
const struct = getPageStruct();
// tabs
let [tab, setTab] = useState(null);
const [icon, setIcon] = useState(false);
const [color, setColor] = useState(false);
const [colorMenu, setColorMenu] = useState(false);
const [importing, setImporting] = useState(false);
const [defaulting, setDefaulting] = useState(!!(!Object.keys(props.page?.get('data')).length && props.missingRequire?.length && struct?.data?.default));
// ref
const colorRef = useRef(null);
// on import
const onImport = async (e) => {
// prevent default
e.preventDefault();
e.stopPropagation();
// loading
setImporting(true);
// load from url
const { data } = await eden.router.post(`/api/${dashup.get('_id')}/page/${page.get('_id')}/default`, {
default : struct.data.default,
section : dashup.get('section') ? dashup.get('section').get('_id') : null,
});
// replace info
props.dashup.set('pages', data.pages);
// exported
setImporting(false);
setDefaulting(false);
// hide
(props.onClose || props.onHide)();
// refresh
props.onRefresh();
};
// check struct
if (!struct) return null;
// tabs
const tabs = struct.data?.tabs || ['Config', 'Connects'];
// check tab
if (!tab) tab = `${tabs[0]}`.toLowerCase();
// return jsx
return (
<>