dappros/ethora

View on GitHub
client-web/build/static/js/753.ada359e6.chunk.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"static/js/753.ada359e6.chunk.js","mappings":"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","sources":["pages/Owner/NewAppModal.tsx","pages/Owner/DeletAppModal.tsx","pages/Owner/EditAppModal.tsx","pages/Owner/RotateModal.tsx","pages/Owner/Apps.tsx","pages/Owner/index.tsx","../node_modules/@mui/material/esm/useMediaQuery/useMediaQuery.js"],"sourcesContent":["import React, { useState } from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { useFormik } from \"formik\";\nimport TextField from \"@mui/material/TextField\";\nimport { useStoreState } from \"../../store\";\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport * as http from '../../http'\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Checkbox from \"@mui/material/Checkbox\";\n\ntype TProps = {\n  open: boolean;\n  setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport default function NewAppModal({ open, setOpen }: TProps) {\n  const fileRef = React.useRef<HTMLInputElement>(null);\n  const setApp = useStoreState((state) => state.setApp);\n  const [loading, setLoading] = useState(false)\n\n  const formik = useFormik({\n    initialValues: {\n      appName: \"\",\n      appDescription: \"\",\n      appGoogleId: \"\",\n      defaultAccessProfileOpen: false,\n      defaultAccessAssetsOpen: false,\n      usersCanFree: false,\n      newUserTokenGift: 0,\n      coinsDayliBonus: 0,\n    },\n    validate: (values) => {\n      const errors: Record<string, string> = {};\n\n      if (!values.appName) {\n        errors.appName = \"Required\";\n      }\n\n      return errors;\n    },\n    onSubmit: ({\n      appName,\n      appDescription,\n      appGoogleId,\n      defaultAccessAssetsOpen,\n      defaultAccessProfileOpen,\n      usersCanFree\n    }) => {\n      setLoading(true);\n      const fd = new FormData();\n      let file;\n      if (fileRef.current) {\n        const files = fileRef.current.files;\n        if (files) {\n          file = files[0];\n        }\n      }\n\n      if (file) {\n        fd.append(\"file\", file);\n      }\n\n      fd.append(\"appName\", appName);\n      fd.append(\"appDescription\", appDescription);\n      fd.append(\"appGoogleId\", appGoogleId);\n      fd.append(\"defaultAccessAssetsOpen\", defaultAccessAssetsOpen.toString());\n      fd.append(\"defaultAccessProfileOpen\", defaultAccessProfileOpen.toString());\n      fd.append(\"usersCanFree\", usersCanFree.toString());\n\n      http.createApp(fd)\n        .then(response => {\n          setApp(response.data.app)\n          setOpen(false)\n        })\n        .finally(() => setLoading(false))\n    }\n  });\n\n  return (\n    <Dialog onClose={() => {}} open={open}>\n      <Box>\n        <DialogTitle\n          style={{ display: \"flex\", justifyContent: \"space-between\" }}\n        >\n          New App\n          <IconButton disabled={loading} onClick={() => setOpen(false)}>\n            <CloseIcon />\n          </IconButton>\n        </DialogTitle>\n        <Box sx={{ width: \"100%\", typography: \"body1\", padding: 1 }}>\n        <form onSubmit={formik.handleSubmit}>\n          <Box>\n            <TextField\n              error={\n                formik.touched.appName && formik.errors.appName ? true : false\n              }\n              helperText={\n                formik.touched.appName && formik.errors.appName\n                  ? formik.errors.appName\n                  : \"\"\n              }\n              margin=\"dense\"\n              label=\"App Name\"\n              name=\"appName\"\n              variant=\"standard\"\n              onChange={formik.handleChange}\n              onBlur={formik.handleBlur}\n              value={formik.values.appName}\n            />\n          </Box>\n          <Box>\n            <TextField\n              margin=\"dense\"\n              label=\"Google Client Id\"\n              name=\"appGoogleId\"\n              variant=\"standard\"\n              onChange={formik.handleChange}\n              onBlur={formik.handleBlur}\n              value={formik.values.appGoogleId}\n            />\n          </Box>\n          <Box style={{ display: \"inline-flex\", flexDirection: \"column\" }}>\n            <FormControlLabel\n              checked={formik.values.defaultAccessProfileOpen}\n              name=\"defaultAccessProfileOpen\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\n                      \"defaultAccessProfileOpen\",\n                      e.target.checked\n                    )\n                  }\n                />\n              }\n              label=\"defaultAccessProfileOpen\"\n              labelPlacement=\"end\"\n              onChange={formik.handleChange}\n            />\n            <FormControlLabel\n              checked={formik.values.defaultAccessAssetsOpen}\n              name=\"defaultAccessAssetsOpen\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\n                      \"defaultAccessAssetsOpen\",\n                      e.target.checked\n                    )\n                  }\n                />\n              }\n              label=\"defaultAccessAssetsOpen\"\n              labelPlacement=\"end\"\n            />\n            <FormControlLabel\n              checked={formik.values.usersCanFree}\n              name=\"usersCanFree\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\"usersCanFree\", e.target.checked)\n                  }\n                />\n              }\n              label=\"usersCanFree\"\n              labelPlacement=\"end\"\n            />\n\n            <input ref={fileRef} type=\"file\" accept=\"image/*\"></input>\n            <LoadingButton\n              loading={loading}\n              variant=\"contained\"\n              style={{ marginTop: \"15px\" }}\n              type=\"submit\"\n              disabled={loading}\n            >\n              Create App\n            </LoadingButton>\n          </Box>\n        </form>\n        </Box>\n      </Box>\n    </Dialog>\n  );\n}\n","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport { useTheme } from '@mui/material/styles';\nimport * as http from '../../http'\nimport { useStoreState } from '../../store'\n\ntype TProps = {\n  open: boolean;\n  setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n  app?: {\n    appName: string\n    _id: string\n  } | null;\n};\n\nexport default function DeletAppModal(props: TProps) {\n  const [loading, setLoading] = React.useState(false)\n  const deleteApp = useStoreState(state => state.deleteApp)\n  const theme = useTheme();\n  const fullScreen = useMediaQuery(theme.breakpoints.down('md'));\n\n  const onDelete = () => {\n    if (props.app && props.app?._id) {\n      setLoading(true)\n      http.deleteApp(props.app._id)\n        .then(() => {\n          deleteApp(props.app?._id as string)\n          props.setOpen(false)\n        })\n        .finally(() => setLoading(false))\n    }\n  }\n\n  return (\n    <div>\n      <Dialog\n        fullScreen={fullScreen}\n        open={props.open}\n        onClose={() => {}}\n        aria-labelledby=\"responsive-dialog-title\"\n      >\n        <DialogTitle id=\"responsive-dialog-title\">\n          Are you sure want to remove application {props.app?.appName}\n        </DialogTitle>\n        <DialogContent>\n          <DialogContentText>\n            Your app clients(mobile, web) will not be able to send requests to Platform API after deleting the app\n          </DialogContentText>\n        </DialogContent>\n        <DialogActions>\n          <Button disabled={loading} variant=\"contained\" autoFocus onClick={() => props.setOpen(false)}>\n            Cancel\n          </Button>\n          <LoadingButton variant=\"contained\" loading={loading} color=\"error\" onClick={onDelete} autoFocus>\n            Delete\n          </LoadingButton>\n        </DialogActions>\n      </Dialog>\n    </div>\n  );\n}\n","import React, { useState } from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { useFormik } from \"formik\";\nimport TextField from \"@mui/material/TextField\";\nimport { useStoreState } from \"../../store\";\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport * as http from '../../http'\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Checkbox from \"@mui/material/Checkbox\";\n\ntype TProps = {\n  open: boolean;\n  setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n  app: {\n    _id: string,\n    appName: string,\n    appDescription: string,\n    appGoogleId: string,\n    defaultAccessProfileOpen: boolean,\n    defaultAccessAssetsOpen: boolean,\n    usersCanFree: boolean,\n  }\n};\n\nexport default function EditAppModal({ open, setOpen, app }: TProps) {\n  const fileRef = React.useRef<HTMLInputElement>(null);\n  const [loading, setLoading] = useState(false)\n  const updateApp = useStoreState(state => state.updateApp)\n\n  const formik = useFormik({\n    initialValues: {\n      appName: app.appName,\n      appDescription: app.appDescription ? app.appDescription : '',\n      appGoogleId: app.appGoogleId ? app.appGoogleId : '',\n      defaultAccessProfileOpen: app.defaultAccessProfileOpen,\n      defaultAccessAssetsOpen: app.defaultAccessAssetsOpen,\n      usersCanFree: app.usersCanFree\n    },\n    validate: (values) => {\n      const errors: Record<string, string> = {};\n\n      if (!values.appName) {\n        errors.appName = \"Required\";\n      }\n\n      return errors;\n    },\n    onSubmit: ({\n      appName,\n      appDescription,\n      appGoogleId,\n      defaultAccessAssetsOpen,\n      defaultAccessProfileOpen,\n      usersCanFree\n    }) => {\n      setLoading(true);\n      const fd = new FormData();\n      let file;\n      if (fileRef.current) {\n        const files = fileRef.current.files;\n        if (files) {\n          file = files[0];\n        }\n      }\n\n      if (file) {\n        fd.append(\"file\", file);\n      }\n\n      fd.append(\"appName\", appName);\n      fd.append(\"appDesctription\", appDescription);\n      fd.append(\"appGoogleId\", appGoogleId);\n      fd.append(\"defaultAccessAssetsOpen\", defaultAccessAssetsOpen.toString());\n      fd.append(\"defaultAccessProfileOpen\", defaultAccessProfileOpen.toString());\n      fd.append(\"usersCanFree\", usersCanFree.toString());\n\n      http.updateApp(app._id, fd)\n        .then(response => {\n          updateApp(response.data.app)\n          setOpen(false)\n        })\n        .finally(() => setLoading(false))\n    }\n  });\n\n  return (\n    <Dialog onClose={() => {}} open={open}>\n      <Box>\n        <DialogTitle\n          style={{ display: \"flex\", justifyContent: \"space-between\" }}\n        >\n          Edit App\n          <IconButton disabled={loading} onClick={() => setOpen(false)}>\n            <CloseIcon />\n          </IconButton>\n        </DialogTitle>\n        <Box sx={{ width: \"100%\", typography: \"body1\", padding: 1 }}>\n        <form onSubmit={formik.handleSubmit}>\n          <Box>\n            <TextField\n              error={\n                formik.touched.appName && formik.errors.appName ? true : false\n              }\n              helperText={\n                formik.touched.appName && formik.errors.appName\n                  ? formik.errors.appName\n                  : \"\"\n              }\n              margin=\"dense\"\n              label=\"App Name\"\n              name=\"appName\"\n              variant=\"standard\"\n              onChange={formik.handleChange}\n              onBlur={formik.handleBlur}\n              value={formik.values.appName}\n            />\n          </Box>\n          <Box>\n            <TextField\n              margin=\"dense\"\n              label=\"Google Client Id\"\n              name=\"appGoogleId\"\n              variant=\"standard\"\n              onChange={formik.handleChange}\n              onBlur={formik.handleBlur}\n              value={formik.values.appGoogleId}\n            />\n          </Box>\n          <Box style={{ display: \"inline-flex\", flexDirection: \"column\" }}>\n            <FormControlLabel\n              checked={formik.values.defaultAccessProfileOpen}\n              name=\"defaultAccessProfileOpen\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\n                      \"defaultAccessProfileOpen\",\n                      e.target.checked\n                    )\n                  }\n                />\n              }\n              label=\"defaultAccessProfileOpen\"\n              labelPlacement=\"end\"\n              onChange={formik.handleChange}\n            />\n            <FormControlLabel\n              checked={formik.values.defaultAccessAssetsOpen}\n              name=\"defaultAccessAssetsOpen\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\n                      \"defaultAccessAssetsOpen\",\n                      e.target.checked\n                    )\n                  }\n                />\n              }\n              label=\"defaultAccessAssetsOpen\"\n              labelPlacement=\"end\"\n            />\n            <FormControlLabel\n              checked={formik.values.usersCanFree}\n              name=\"usersCanFree\"\n              control={\n                <Checkbox\n                  onChange={(e) =>\n                    formik.setFieldValue(\"usersCanFree\", e.target.checked)\n                  }\n                />\n              }\n              label=\"usersCanFree\"\n              labelPlacement=\"end\"\n            />\n\n            <input ref={fileRef} type=\"file\" accept=\"image/*\"></input>\n            <LoadingButton\n              loading={loading}\n              variant=\"contained\"\n              style={{ marginTop: \"15px\" }}\n              type=\"submit\"\n            >\n              Update App\n            </LoadingButton>\n          </Box>\n        </form>\n        </Box>\n      </Box>\n    </Dialog>\n  );\n}\n","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport LoadingButton from '@mui/lab/LoadingButton';\nimport { useTheme } from '@mui/material/styles';\nimport * as http from '../../http'\nimport { useStoreState } from '../../store'\n\ntype TProps = {\n  open: boolean;\n  setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n  app?: {\n    appName: string\n    _id: string\n  } | null;\n};\n\nexport default function RotateModal(props: TProps) {\n  const [loading, setLoading] = React.useState(false)\n  const updateApp = useStoreState(state => state.updateApp)\n  const theme = useTheme();\n  const fullScreen = useMediaQuery(theme.breakpoints.down('md'));\n\n  const onRotate = () => {\n    if (props.app && props.app?._id) {\n      setLoading(true)\n      http.rotateAppJwt(props.app._id)\n        .then((response) => {\n          updateApp(response.data.app)\n          props.setOpen(false)\n        })\n        .finally(() => setLoading(false))\n    }\n  }\n\n  return (\n    <div>\n      <Dialog\n        fullScreen={fullScreen}\n        open={props.open}\n        onClose={() => {}}\n        aria-labelledby=\"responsive-dialog-title\"\n      >\n        <DialogTitle id=\"responsive-dialog-title\">\n          Are you sure want to rotate JWT for application {props.app?.appName}\n        </DialogTitle>\n        <DialogContent>\n          <DialogContentText>\n            You will need to update your app clients(mobile, web) with new App Jwt\n          </DialogContentText>\n        </DialogContent>\n        <DialogActions>\n          <Button disabled={loading} variant=\"contained\" autoFocus onClick={() => props.setOpen(false)}>\n            Cancel\n          </Button>\n          <LoadingButton variant=\"contained\" loading={loading} color=\"error\" onClick={onRotate} autoFocus>\n            Rotate\n          </LoadingButton>\n        </DialogActions>\n      </Dialog>\n    </div>\n  );\n}\n","import * as React from \"react\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TableHead from \"@mui/material/TableHead\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport { IconButton, Typography } from \"@mui/material\";\nimport AddCircleIcon from \"@mui/icons-material/AddCircle\";\nimport { useStoreState } from \"../../store\";\nimport NoDataImage from \"../../components/NoDataImage\";\nimport NewAppModal from \"./NewAppModal\";\nimport DeleteAppModal from './DeletAppModal';\nimport EditAppModal from \"./EditAppModal\";\nimport RotateModal from \"./RotateModal\";\n\nexport default function BasicTable() {\n  const apps = useStoreState((state) => state.apps)\n  const [open, setOpen] = React.useState(false)\n  const [showDelete, setShowDelete] = React.useState(false)\n  const [showEdit, setShowEdit] = React.useState(false)\n  const [showRotate, setShowRotate] = React.useState(false)\n  const [currentApp, setCurrentApp] = React.useState({\n    _id: '',\n    appName: '',\n    appDescription: '',\n    appGoogleId: '',\n    defaultAccessProfileOpen: false,\n    defaultAccessAssetsOpen: false,\n    usersCanFree: false\n  })\n\n  const onDelete = (app: any) => {\n    setCurrentApp(app)\n    setShowDelete(true)\n  }\n\n  const onEdit = (app: any) => {\n    setCurrentApp(app)\n    setShowEdit(true)\n  }\n\n  const onRotateJwt = (app: any) => {\n    setCurrentApp(app)\n    setShowRotate(true)\n  }\n\n  return (\n    <TableContainer\n      component={Paper}\n      style={{ margin: \"0 auto\" }}\n    >\n      <Box style={{ display: \"flex\", alignItems: \"center\" }}>\n        <Typography variant=\"h6\" style={{ margin: \"16px\" }}>\n          Apps\n        </Typography>\n        <IconButton onClick={() => setOpen(true)} size=\"large\">\n          <AddCircleIcon fontSize=\"large\"></AddCircleIcon>\n        </IconButton>\n      </Box>\n      { apps.length === 0 && (\n        <Box style={{display: 'flex', flexDirection: 'column', alignItems: 'center'}}>\n          <NoDataImage></NoDataImage>\n          <Typography style={{marginTop: '20px', marginBottom: '20px'}}>You have not created any apps.</Typography>\n        </Box>\n      ) }\n\n      {\n        apps.length > 0 && (\n          <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\n            <TableHead>\n              <TableRow>\n                <TableCell width={200}>Application Name</TableCell>\n                <TableCell align=\"right\">Is Assets Open</TableCell>\n                <TableCell align=\"right\">Is Profile Open</TableCell>\n                <TableCell align=\"right\">Is Users Can Free</TableCell>\n                <TableCell align=\"right\">Created</TableCell>\n                <TableCell align=\"right\">Actions</TableCell>\n              </TableRow>\n            </TableHead>\n            <TableBody>\n              {apps.map((app) => (\n                <TableRow\n                  key={app._id}\n                  sx={{ \"&:last-child td, &:last-child th\": { border: 0 } }}\n                >\n                  <TableCell component=\"th\" scope=\"row\">\n                    {app.appName}\n                  </TableCell>\n                  <TableCell align=\"right\">\n                    {app.defaultAccessAssetsOpen.toString()}\n                  </TableCell>\n                  <TableCell align=\"right\">\n                    {app.defaultAccessProfileOpen.toString()}\n                  </TableCell>\n                  <TableCell align=\"right\">{app.usersCanFree.toString()}</TableCell>\n                  <TableCell align=\"right\">\n                    {new Date(app.createdAt).toDateString()}\n                  </TableCell>\n                  <TableCell align=\"right\">\n                    <Box style={{display: 'flex', flexDirection: 'column'}}>\n                      <a href=\"/\" onClick={(e) => {\n                        e.preventDefault()\n                        onDelete(app)\n                      }}>Delete</a>\n                      <a \n                        href={`data:text/json;chatset=utf-8,${encodeURIComponent(\n                          JSON.stringify({appJwt: app.appToken})\n                        )}`}\n                        style={{display: 'none'}}\n                        download = \"data.json\"\n                        id={`app-jwt-${app._id}`}\n                      >download jwt</a>\n                      <a href=\"/\" onClick={(e) => {\n                        e.preventDefault()\n                        const el = document.querySelector(`#app-jwt-${app._id}`) as HTMLElement\n                        el?.click()\n                      }}>\n                        Download App JWT\n                      </a>\n                      <a href=\"/\" onClick={(e) => {\n                        e.preventDefault()\n                        onRotateJwt(app)\n                      }}>Rotate App Jwt</a>\n                      <a href=\"/\" onClick={(e) => {\n                        e.preventDefault()\n                        onEdit(app)\n                      }}>Edit</a>\n                    </Box>\n                  </TableCell>\n                </TableRow>\n              ))}\n            </TableBody>\n          </Table>\n        )\n      }\n      <NewAppModal open={open} setOpen={setOpen}></NewAppModal>\n      <DeleteAppModal app={currentApp} open={showDelete} setOpen={setShowDelete}/>\n      <RotateModal app={currentApp} open={showRotate} setOpen={setShowRotate}></RotateModal>\n      {showEdit && <EditAppModal app={currentApp} open={showEdit} setOpen={setShowEdit}></EditAppModal>}\n    </TableContainer>\n  );\n}\n","import * as React from \"react\";\nimport { useStoreState } from \"../../store\";\nimport { useHistory } from \"react-router-dom\";\nimport Apps from \"./Apps\";\nimport Box from \"@mui/material/Box\";\nimport Users from \"./Users\";\nimport { Container } from \"@mui/material\";\n\nexport default function Owner() {\n  return (\n    <div style={{ backgroundColor: \"#edf0f4\", padding: \"20px\" }}>\n      <Container maxWidth={\"lg\"}>\n        <Box style={{ marginTop: \"20px\" }}>\n          <Apps />\n        </Box>\n\n        <Box style={{ marginTop: \"20px\" }}>\n          <Users />\n        </Box>\n      </Container>\n    </div>\n  );\n}\n","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n  const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n  const [match, setMatch] = React.useState(() => {\n    if (noSsr && supportMatchMedia) {\n      return matchMedia(query).matches;\n    }\n    if (ssrMatchMedia) {\n      return ssrMatchMedia(query).matches;\n    }\n\n    // Once the component is mounted, we rely on the\n    // event listeners to return the correct matches value.\n    return defaultMatches;\n  });\n  useEnhancedEffect(() => {\n    let active = true;\n    if (!supportMatchMedia) {\n      return undefined;\n    }\n    const queryList = matchMedia(query);\n    const updateMatch = () => {\n      // Workaround Safari wrong implementation of matchMedia\n      // TODO can we remove it?\n      // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n      if (active) {\n        setMatch(queryList.matches);\n      }\n    };\n    updateMatch();\n    // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n    queryList.addListener(updateMatch);\n    return () => {\n      active = false;\n      queryList.removeListener(updateMatch);\n    };\n  }, [query, matchMedia, supportMatchMedia]);\n  return match;\n}\n\n// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n  const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n  const getServerSnapshot = React.useMemo(() => {\n    if (ssrMatchMedia !== null) {\n      const {\n        matches\n      } = ssrMatchMedia(query);\n      return () => matches;\n    }\n    return getDefaultSnapshot;\n  }, [getDefaultSnapshot, query, ssrMatchMedia]);\n  const [getSnapshot, subscribe] = React.useMemo(() => {\n    if (matchMedia === null) {\n      return [getDefaultSnapshot, () => () => {}];\n    }\n    const mediaQueryList = matchMedia(query);\n    return [() => mediaQueryList.matches, notify => {\n      // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n      mediaQueryList.addListener(notify);\n      return () => {\n        mediaQueryList.removeListener(notify);\n      };\n    }];\n  }, [getDefaultSnapshot, matchMedia, query]);\n  const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n  return match;\n}\nexport default function useMediaQuery(queryInput, options = {}) {\n  const theme = useTheme();\n  // Wait for jsdom to support the match media feature.\n  // All the browsers MUI support have this built-in.\n  // This defensive check is here for simplicity.\n  // Most of the time, the match media logic isn't central to people tests.\n  const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n  const {\n    defaultMatches = false,\n    matchMedia = supportMatchMedia ? window.matchMedia : null,\n    ssrMatchMedia = null,\n    noSsr\n  } = getThemeProps({\n    name: 'MuiUseMediaQuery',\n    props: options,\n    theme\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof queryInput === 'function' && theme === null) {\n      console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n    }\n  }\n  let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n  query = query.replace(/^@media( ?)/m, '');\n\n  // TODO: Drop `useMediaQueryOld` and use  `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n  const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n  const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n  if (process.env.NODE_ENV !== 'production') {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useDebugValue({\n      query,\n      match\n    });\n  }\n  return match;\n}"],"names":["NewAppModal","open","setOpen","fileRef","React","setApp","useStoreState","state","useState","loading","setLoading","formik","useFormik","initialValues","appName","appDescription","appGoogleId","defaultAccessProfileOpen","defaultAccessAssetsOpen","usersCanFree","newUserTokenGift","coinsDayliBonus","validate","values","errors","onSubmit","file","fd","FormData","current","files","append","toString","http","then","response","data","app","finally","Dialog","onClose","Box","DialogTitle","style","display","justifyContent","IconButton","disabled","onClick","Close","sx","width","typography","padding","handleSubmit","TextField","error","touched","helperText","margin","label","name","variant","onChange","handleChange","onBlur","handleBlur","value","flexDirection","FormControlLabel","checked","control","Checkbox","e","setFieldValue","target","labelPlacement","ref","type","accept","LoadingButton","marginTop","DeletAppModal","props","deleteApp","theme","useTheme","fullScreen","useMediaQuery","breakpoints","down","id","DialogContent","DialogContentText","DialogActions","Button","autoFocus","color","_id","EditAppModal","updateApp","RotateModal","BasicTable","apps","showDelete","setShowDelete","showEdit","setShowEdit","showRotate","setShowRotate","currentApp","setCurrentApp","TableContainer","component","Paper","alignItems","Typography","size","AddCircle","fontSize","length","NoDataImage","marginBottom","Table","minWidth","TableHead","TableRow","TableCell","align","TableBody","map","border","scope","Date","createdAt","toDateString","href","preventDefault","onDelete","encodeURIComponent","JSON","stringify","appJwt","appToken","download","el","document","querySelector","click","onRotateJwt","onEdit","Owner","backgroundColor","Container","maxWidth","Users","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","window","matches","match","setMatch","useEnhancedEffect","active","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","getSnapshot","subscribe","queryInput","options","getThemeProps","replace","useMediaQueryImplementation","undefined"],"sourceRoot":""}