Skip to content

Commit

Permalink
Integrations: Add, Edit, Delete, Toggle
Browse files Browse the repository at this point in the history
  • Loading branch information
YeonV committed Jun 9, 2021
1 parent dccaba6 commit 98da553
Showing 9 changed files with 607 additions and 80 deletions.
2 changes: 1 addition & 1 deletion src/App.jsx
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ import Devices from './pages/Devices/Devices';
import Device from './pages/Device/Device';
import Scenes from './pages/Scenes/Scenes';
import Settings from './pages/Settings/Settings';
import Integrations from './pages/Integrations';
import Integrations from './pages/Integrations/Integrations';
import ScrollToTop from './utils/scrollToTop';

const curacaoDarkTheme = createMuiTheme({
89 changes: 51 additions & 38 deletions src/components/Bars/BarBottom.jsx
Original file line number Diff line number Diff line change
@@ -8,17 +8,17 @@ import HomeIcon from '@material-ui/icons/Home';
import Wallpaper from '@material-ui/icons/Wallpaper';
import { useLocation, Link } from 'react-router-dom';
import Backdrop from '@material-ui/core/Backdrop';
import Fab from '@material-ui/core/Fab';
import AddIcon from '@material-ui/icons/Add';
import SpeedDial from '@material-ui/lab/SpeedDial';
import SpeedDialIcon from '@material-ui/lab/SpeedDialIcon';
import SpeedDialAction from '@material-ui/lab/SpeedDialAction';
import useStore from '../../utils/apiStore';
// import SettingsInputSvideoIcon from "@material-ui/icons/SettingsInputSvideo";
import SettingsInputSvideoIcon from "@material-ui/icons/SettingsInputSvideo";
import DeveloperMode from "@material-ui/icons/DeveloperMode";
import SettingsInputComponent from '@material-ui/icons/SettingsInputComponent';
import AddSceneDialog from '../../pages/Scenes/AddSceneDialog';
import AddDeviceDialog from '../../pages/Devices/AddDeviceDialog';
import AddVirtualDialog from '../../pages/Devices/AddVirtualDialog';
import AddIntegrationDialog from '../../pages/Integrations/AddIntegration';

const useStyles = makeStyles((theme) => ({
root: {
@@ -40,7 +40,7 @@ const useStyles = makeStyles((theme) => ({
left: '50%',
transform: 'translateX(-50%)',
'&.MuiSpeedDial-directionUp, &.MuiSpeedDial-directionLeft': {
bottom: theme.spacing(2) + 15,
bottom: theme.spacing(2) + 25,
// right: theme.spacing(2),
},
},
@@ -56,6 +56,8 @@ export default function LabelBottomNavigation() {
const setDialogOpenAddScene = useStore((state) => state.setDialogOpenAddScene);
const setDialogOpenAddDevice = useStore((state) => state.setDialogOpenAddDevice);
const setDialogOpenAddVirtual = useStore((state) => state.setDialogOpenAddVirtual);
const setDialogOpenAddIntegration = useStore((state) => state.setDialogOpenAddIntegration);

const isTouch = (('ontouchstart' in window) ||
(navigator.maxTouchPoints > 0) ||
(navigator.msMaxTouchPoints > 0))
@@ -66,6 +68,10 @@ export default function LabelBottomNavigation() {
{ icon: <Wallpaper />, name: 'Add Scene', action: () => setDialogOpenAddScene(true) },
];

if (parseInt(window.localStorage.getItem('BladeMod')) > 10) {
actions.push({ icon: <SettingsInputSvideoIcon />, name: 'Add Integration', action: () => setDialogOpenAddIntegration(true) })
}

const handleClose = () => {
setOpen(false);
};
@@ -90,7 +96,7 @@ export default function LabelBottomNavigation() {
<BottomNavigation
value={value}
className={classes.root}
showLabels
showLabels={true}
>
<BottomNavigationAction
component={Link}
@@ -107,58 +113,65 @@ export default function LabelBottomNavigation() {
to="/Devices"
icon={<SettingsInputComponent />}
/>


<BottomNavigationAction
component={Link}
to="/Scenes"
label="Scenes"
value="/Scenes"
icon={<Wallpaper />}
/>

{/* <BottomNavigationAction
label="Integrations"
value="integrations"
component={Link}
to={"/Integrations"}
icon={<SettingsInputSvideoIcon />}
/> */}

{parseInt(window.localStorage.getItem('BladeMod')) > 10 && (
<BottomNavigationAction
label="Integrations"
value="/Integrations"
component={Link}
to={"/Integrations"}
icon={<SettingsInputSvideoIcon />}
/>
)}
<BottomNavigationAction
label="Settings"
value="/Settings"
icon={<Settings />}
component={Link}
to="/Settings"
/>

{parseInt(window.localStorage.getItem('BladeMod')) > 10 && (
<BottomNavigationAction
label="Devmode"
value="devmode"
component={Link}
to={"/"}
icon={<DeveloperMode />}
/>
)}
</BottomNavigation>
<AddSceneDialog />
<AddDeviceDialog />
<AddVirtualDialog />
<AddIntegrationDialog />
<SpeedDial
ariaLabel="SpeedDial example"
className={classes.speedDial}
// className={classes.fabButton}
hidden={false}
icon={<SpeedDialIcon />}
onClose={handleClose}
onOpen={handleOpen}
open={open}
direction={"up"}
>
{actions.map((action) => (
<SpeedDialAction
key={action.name}
icon={action.icon}
tooltipTitle={action.name}
style={{ whiteSpace: 'nowrap' }}
tooltipOpen={isTouch}
onClick={() => handleAction(action.action)}
/>
))}
</SpeedDial>
ariaLabel="SpeedDial example"
className={classes.speedDial}
// className={classes.fabButton}
hidden={false}
icon={<SpeedDialIcon />}
onClose={handleClose}
onOpen={handleOpen}
open={open}
direction={"up"}
>
{actions.map((action) => (
<SpeedDialAction
key={action.name}
icon={action.icon}
tooltipTitle={action.name}
style={{ whiteSpace: 'nowrap' }}
tooltipOpen={isTouch}
onClick={() => handleAction(action.action)}
/>
))}
</SpeedDial>
<Backdrop open={open} />
</>
);
7 changes: 2 additions & 5 deletions src/pages/Devices/Devices.jsx
Original file line number Diff line number Diff line change
@@ -19,18 +19,15 @@ const Devices = () => {
const getDisplays = useStore((state) => state.getDisplays);
const displays = useStore((state) => state.displays);




useEffect(() => {
getDisplays();
}, [getDisplays]);

return (
<div className={classes.cardWrapper}>
{displays && Object.keys(displays).map((display, i) => (
{displays && Object.keys(displays).length ? Object.keys(displays).map((display, i) => (
<DeviceCard display={display} key={i} />
))}
)) : (<>No devices yet</>)}
</div>
);
};
19 changes: 0 additions & 19 deletions src/pages/Integrations.jsx

This file was deleted.

Loading

0 comments on commit 98da553

Please sign in to comment.