From bbe3e712ef0c616418057f1b9916984da18e7b38 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Tue, 7 Dec 2021 15:27:05 -0600 Subject: More rebranding para ETBSA! --- deploy-modern.sh | 15 +++++++++++++++ modern/.env | 2 +- modern/public/images/icon/animal.png | Bin 0 -> 1074 bytes modern/public/images/icon/backhoe.png | Bin 0 -> 45689 bytes modern/public/images/icon/bicycle.png | Bin 0 -> 1121 bytes modern/public/images/icon/boat.png | Bin 0 -> 1066 bytes modern/public/images/icon/bus.png | Bin 0 -> 1012 bytes modern/public/images/icon/car.png | Bin 0 -> 43950 bytes modern/public/images/icon/crane.png | Bin 0 -> 1106 bytes modern/public/images/icon/default.png | Bin 0 -> 819 bytes modern/public/images/icon/helicopter.png | Bin 0 -> 1042 bytes modern/public/images/icon/motorcycle.png | Bin 0 -> 1123 bytes modern/public/images/icon/offroad.png | Bin 0 -> 1031 bytes modern/public/images/icon/old/animal.svg | 2 ++ modern/public/images/icon/old/bicycle.svg | 2 ++ modern/public/images/icon/old/boat.svg | 2 ++ modern/public/images/icon/old/bus.svg | 2 ++ modern/public/images/icon/old/car.svg | 2 ++ modern/public/images/icon/old/crane.svg | 2 ++ modern/public/images/icon/old/default.svg | 2 ++ modern/public/images/icon/old/helicopter.svg | 2 ++ modern/public/images/icon/old/motorcycle.svg | 2 ++ modern/public/images/icon/old/offroad.svg | 2 ++ modern/public/images/icon/old/person.svg | 2 ++ modern/public/images/icon/old/pickup.svg | 2 ++ modern/public/images/icon/old/plane.svg | 2 ++ modern/public/images/icon/old/scooter.svg | 2 ++ modern/public/images/icon/old/ship.svg | 2 ++ modern/public/images/icon/old/tractor.svg | 2 ++ modern/public/images/icon/old/train.svg | 2 ++ modern/public/images/icon/old/tram.svg | 2 ++ modern/public/images/icon/old/trolleybus.svg | 2 ++ modern/public/images/icon/old/truck.svg | 2 ++ modern/public/images/icon/old/van.svg | 2 ++ modern/public/images/icon/person.png | Bin 0 -> 957 bytes modern/public/images/icon/pickup.png | Bin 0 -> 33134 bytes modern/public/images/icon/plane.png | Bin 0 -> 1011 bytes modern/public/images/icon/scooter.png | Bin 0 -> 973 bytes modern/public/images/icon/ship.png | Bin 0 -> 934 bytes modern/public/images/icon/tractor.png | Bin 0 -> 61757 bytes modern/public/images/icon/train.png | Bin 0 -> 1031 bytes modern/public/images/icon/tram.png | Bin 0 -> 1028 bytes modern/public/images/icon/trolleybus.png | Bin 0 -> 986 bytes modern/public/images/icon/truck.png | Bin 0 -> 58791 bytes modern/public/images/icon/van.png | Bin 0 -> 921 bytes modern/src/DevicesList.js | 5 +++-- modern/src/MainPage.js | 10 ++++++---- modern/src/common/deviceCategories.js | 1 + modern/src/map/Map.js | 18 +++++++++--------- modern/src/map/PositionsMap.js | 2 +- modern/src/map/mapUtil.js | 6 ++++-- modern/src/setupProxy.js | 6 +++--- modern/src/store/index.js | 3 +++ modern/src/store/ui.js | 16 ++++++++++++++++ 54 files changed, 104 insertions(+), 22 deletions(-) create mode 100755 deploy-modern.sh create mode 100644 modern/public/images/icon/animal.png create mode 100644 modern/public/images/icon/backhoe.png create mode 100644 modern/public/images/icon/bicycle.png create mode 100644 modern/public/images/icon/boat.png create mode 100644 modern/public/images/icon/bus.png create mode 100644 modern/public/images/icon/car.png create mode 100644 modern/public/images/icon/crane.png create mode 100644 modern/public/images/icon/default.png create mode 100644 modern/public/images/icon/helicopter.png create mode 100644 modern/public/images/icon/motorcycle.png create mode 100644 modern/public/images/icon/offroad.png create mode 100644 modern/public/images/icon/old/animal.svg create mode 100644 modern/public/images/icon/old/bicycle.svg create mode 100644 modern/public/images/icon/old/boat.svg create mode 100644 modern/public/images/icon/old/bus.svg create mode 100644 modern/public/images/icon/old/car.svg create mode 100644 modern/public/images/icon/old/crane.svg create mode 100644 modern/public/images/icon/old/default.svg create mode 100644 modern/public/images/icon/old/helicopter.svg create mode 100644 modern/public/images/icon/old/motorcycle.svg create mode 100644 modern/public/images/icon/old/offroad.svg create mode 100644 modern/public/images/icon/old/person.svg create mode 100644 modern/public/images/icon/old/pickup.svg create mode 100644 modern/public/images/icon/old/plane.svg create mode 100644 modern/public/images/icon/old/scooter.svg create mode 100644 modern/public/images/icon/old/ship.svg create mode 100644 modern/public/images/icon/old/tractor.svg create mode 100644 modern/public/images/icon/old/train.svg create mode 100644 modern/public/images/icon/old/tram.svg create mode 100644 modern/public/images/icon/old/trolleybus.svg create mode 100644 modern/public/images/icon/old/truck.svg create mode 100644 modern/public/images/icon/old/van.svg create mode 100644 modern/public/images/icon/person.png create mode 100644 modern/public/images/icon/pickup.png create mode 100644 modern/public/images/icon/plane.png create mode 100644 modern/public/images/icon/scooter.png create mode 100644 modern/public/images/icon/ship.png create mode 100644 modern/public/images/icon/tractor.png create mode 100644 modern/public/images/icon/train.png create mode 100644 modern/public/images/icon/tram.png create mode 100644 modern/public/images/icon/trolleybus.png create mode 100644 modern/public/images/icon/truck.png create mode 100644 modern/public/images/icon/van.png create mode 100644 modern/src/store/ui.js diff --git a/deploy-modern.sh b/deploy-modern.sh new file mode 100755 index 0000000..5c04855 --- /dev/null +++ b/deploy-modern.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +WEB_DIR=./modern/build +SSH_CMD="ssh" +RSYNC_TO=etbsa.net:/opt/traccar/web/modern/ + +# Buildh +cd ./modern/ +npm run build_release + +# Deploy only if build was successful +if [ $? -eq 0 ]; then + cd ../ + rsync --progress -e "$SSH_CMD" -rv0 --delete $WEB_DIR/ $RSYNC_TO +fi + diff --git a/modern/.env b/modern/.env index 69efd74..0a33603 100644 --- a/modern/.env +++ b/modern/.env @@ -1,2 +1,2 @@ SKIP_PREFLIGHT_CHECK=true -REACT_APP_URL_NAME='localhost:8082' +REACT_APP_URL_NAME='http://trackermap.local' diff --git a/modern/public/images/icon/animal.png b/modern/public/images/icon/animal.png new file mode 100644 index 0000000..c6b1043 Binary files /dev/null and b/modern/public/images/icon/animal.png differ diff --git a/modern/public/images/icon/backhoe.png b/modern/public/images/icon/backhoe.png new file mode 100644 index 0000000..7347b06 Binary files /dev/null and b/modern/public/images/icon/backhoe.png differ diff --git a/modern/public/images/icon/bicycle.png b/modern/public/images/icon/bicycle.png new file mode 100644 index 0000000..12956f1 Binary files /dev/null and b/modern/public/images/icon/bicycle.png differ diff --git a/modern/public/images/icon/boat.png b/modern/public/images/icon/boat.png new file mode 100644 index 0000000..392f903 Binary files /dev/null and b/modern/public/images/icon/boat.png differ diff --git a/modern/public/images/icon/bus.png b/modern/public/images/icon/bus.png new file mode 100644 index 0000000..5bade66 Binary files /dev/null and b/modern/public/images/icon/bus.png differ diff --git a/modern/public/images/icon/car.png b/modern/public/images/icon/car.png new file mode 100644 index 0000000..9865312 Binary files /dev/null and b/modern/public/images/icon/car.png differ diff --git a/modern/public/images/icon/crane.png b/modern/public/images/icon/crane.png new file mode 100644 index 0000000..44d22bc Binary files /dev/null and b/modern/public/images/icon/crane.png differ diff --git a/modern/public/images/icon/default.png b/modern/public/images/icon/default.png new file mode 100644 index 0000000..e7d1f72 Binary files /dev/null and b/modern/public/images/icon/default.png differ diff --git a/modern/public/images/icon/helicopter.png b/modern/public/images/icon/helicopter.png new file mode 100644 index 0000000..4c602f1 Binary files /dev/null and b/modern/public/images/icon/helicopter.png differ diff --git a/modern/public/images/icon/motorcycle.png b/modern/public/images/icon/motorcycle.png new file mode 100644 index 0000000..01e50cc Binary files /dev/null and b/modern/public/images/icon/motorcycle.png differ diff --git a/modern/public/images/icon/offroad.png b/modern/public/images/icon/offroad.png new file mode 100644 index 0000000..38a99ce Binary files /dev/null and b/modern/public/images/icon/offroad.png differ diff --git a/modern/public/images/icon/old/animal.svg b/modern/public/images/icon/old/animal.svg new file mode 100644 index 0000000..5a23934 --- /dev/null +++ b/modern/public/images/icon/old/animal.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/bicycle.svg b/modern/public/images/icon/old/bicycle.svg new file mode 100644 index 0000000..a473f4b --- /dev/null +++ b/modern/public/images/icon/old/bicycle.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/boat.svg b/modern/public/images/icon/old/boat.svg new file mode 100644 index 0000000..33bfe27 --- /dev/null +++ b/modern/public/images/icon/old/boat.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/bus.svg b/modern/public/images/icon/old/bus.svg new file mode 100644 index 0000000..5e88148 --- /dev/null +++ b/modern/public/images/icon/old/bus.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/car.svg b/modern/public/images/icon/old/car.svg new file mode 100644 index 0000000..f919e0b --- /dev/null +++ b/modern/public/images/icon/old/car.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/crane.svg b/modern/public/images/icon/old/crane.svg new file mode 100644 index 0000000..23db091 --- /dev/null +++ b/modern/public/images/icon/old/crane.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/default.svg b/modern/public/images/icon/old/default.svg new file mode 100644 index 0000000..a4ba881 --- /dev/null +++ b/modern/public/images/icon/old/default.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/helicopter.svg b/modern/public/images/icon/old/helicopter.svg new file mode 100644 index 0000000..2849ee8 --- /dev/null +++ b/modern/public/images/icon/old/helicopter.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/motorcycle.svg b/modern/public/images/icon/old/motorcycle.svg new file mode 100644 index 0000000..0289a34 --- /dev/null +++ b/modern/public/images/icon/old/motorcycle.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/offroad.svg b/modern/public/images/icon/old/offroad.svg new file mode 100644 index 0000000..b0072b6 --- /dev/null +++ b/modern/public/images/icon/old/offroad.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/person.svg b/modern/public/images/icon/old/person.svg new file mode 100644 index 0000000..805ba44 --- /dev/null +++ b/modern/public/images/icon/old/person.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/pickup.svg b/modern/public/images/icon/old/pickup.svg new file mode 100644 index 0000000..db4494b --- /dev/null +++ b/modern/public/images/icon/old/pickup.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/plane.svg b/modern/public/images/icon/old/plane.svg new file mode 100644 index 0000000..5210e4c --- /dev/null +++ b/modern/public/images/icon/old/plane.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/scooter.svg b/modern/public/images/icon/old/scooter.svg new file mode 100644 index 0000000..ea23f9f --- /dev/null +++ b/modern/public/images/icon/old/scooter.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/ship.svg b/modern/public/images/icon/old/ship.svg new file mode 100644 index 0000000..b8c563c --- /dev/null +++ b/modern/public/images/icon/old/ship.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/tractor.svg b/modern/public/images/icon/old/tractor.svg new file mode 100644 index 0000000..3a9e9f2 --- /dev/null +++ b/modern/public/images/icon/old/tractor.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/train.svg b/modern/public/images/icon/old/train.svg new file mode 100644 index 0000000..125b468 --- /dev/null +++ b/modern/public/images/icon/old/train.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/tram.svg b/modern/public/images/icon/old/tram.svg new file mode 100644 index 0000000..f54084f --- /dev/null +++ b/modern/public/images/icon/old/tram.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/trolleybus.svg b/modern/public/images/icon/old/trolleybus.svg new file mode 100644 index 0000000..46ecc71 --- /dev/null +++ b/modern/public/images/icon/old/trolleybus.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/truck.svg b/modern/public/images/icon/old/truck.svg new file mode 100644 index 0000000..df5c164 --- /dev/null +++ b/modern/public/images/icon/old/truck.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/old/van.svg b/modern/public/images/icon/old/van.svg new file mode 100644 index 0000000..a3ee13c --- /dev/null +++ b/modern/public/images/icon/old/van.svg @@ -0,0 +1,2 @@ + + diff --git a/modern/public/images/icon/person.png b/modern/public/images/icon/person.png new file mode 100644 index 0000000..ed15d09 Binary files /dev/null and b/modern/public/images/icon/person.png differ diff --git a/modern/public/images/icon/pickup.png b/modern/public/images/icon/pickup.png new file mode 100644 index 0000000..60c005d Binary files /dev/null and b/modern/public/images/icon/pickup.png differ diff --git a/modern/public/images/icon/plane.png b/modern/public/images/icon/plane.png new file mode 100644 index 0000000..f5840c6 Binary files /dev/null and b/modern/public/images/icon/plane.png differ diff --git a/modern/public/images/icon/scooter.png b/modern/public/images/icon/scooter.png new file mode 100644 index 0000000..61995ae Binary files /dev/null and b/modern/public/images/icon/scooter.png differ diff --git a/modern/public/images/icon/ship.png b/modern/public/images/icon/ship.png new file mode 100644 index 0000000..1e5e48b Binary files /dev/null and b/modern/public/images/icon/ship.png differ diff --git a/modern/public/images/icon/tractor.png b/modern/public/images/icon/tractor.png new file mode 100644 index 0000000..9eaa214 Binary files /dev/null and b/modern/public/images/icon/tractor.png differ diff --git a/modern/public/images/icon/train.png b/modern/public/images/icon/train.png new file mode 100644 index 0000000..94ef26c Binary files /dev/null and b/modern/public/images/icon/train.png differ diff --git a/modern/public/images/icon/tram.png b/modern/public/images/icon/tram.png new file mode 100644 index 0000000..9daf131 Binary files /dev/null and b/modern/public/images/icon/tram.png differ diff --git a/modern/public/images/icon/trolleybus.png b/modern/public/images/icon/trolleybus.png new file mode 100644 index 0000000..c0db490 Binary files /dev/null and b/modern/public/images/icon/trolleybus.png differ diff --git a/modern/public/images/icon/truck.png b/modern/public/images/icon/truck.png new file mode 100644 index 0000000..dc42323 Binary files /dev/null and b/modern/public/images/icon/truck.png differ diff --git a/modern/public/images/icon/van.png b/modern/public/images/icon/van.png new file mode 100644 index 0000000..7be109e Binary files /dev/null and b/modern/public/images/icon/van.png differ diff --git a/modern/src/DevicesList.js b/modern/src/DevicesList.js index 9b2a5bf..5f7892c 100644 --- a/modern/src/DevicesList.js +++ b/modern/src/DevicesList.js @@ -14,7 +14,7 @@ import AutoSizer from 'react-virtualized-auto-sizer'; import BatteryFullIcon from '@material-ui/icons/BatteryFull'; import { ReactComponent as IgnitionIcon } from '../public/images/ignition.svg'; -import { devicesActions } from './store'; +import { devicesActions, uiActions } from './store'; import EditCollectionView from './EditCollectionView'; import { useEffectAsync } from './reactHelper'; import { formatPosition } from './common/formatter'; @@ -94,13 +94,14 @@ const DeviceRow = ({ data, index, style }) => {
{ dispatch(devicesActions.select(item)); + dispatch(uiActions.setCollapsed(true)); setTimeout (() => { dispatch(devicesActions.unselect()); }, 1000); }}> - + diff --git a/modern/src/MainPage.js b/modern/src/MainPage.js index 7fd4315..08ba343 100644 --- a/modern/src/MainPage.js +++ b/modern/src/MainPage.js @@ -3,6 +3,8 @@ import { useHistory } from 'react-router-dom'; import { makeStyles, Paper, Toolbar, TextField, IconButton, Button, } from '@material-ui/core'; +import { useDispatch, useSelector } from 'react-redux'; +import { uiActions } from './store/ui'; import { useTheme } from '@material-ui/core/styles'; import useMediaQuery from '@material-ui/core/useMediaQuery'; @@ -22,7 +24,6 @@ import BottomMenu from './components/BottomMenu'; import { useTranslation } from './LocalizationProvider'; import PoiMap from './map/PoiMap'; import MapPadding from './map/MapPadding'; - const useStyles = makeStyles((theme) => ({ root: { height: '100vh', @@ -93,19 +94,20 @@ const MainPage = () => { const classes = useStyles(); const history = useHistory(); const theme = useTheme(); + const dispatch = useDispatch(); const t = useTranslation(); const isTablet = useMediaQuery(theme.breakpoints.down('md')); const isPhone = useMediaQuery(theme.breakpoints.down('xs')); const [deviceName, setDeviceName] = useState(''); - const [collapsed, setCollapsed] = useState(false); + const collapsed = useSelector((state) => state.ui.collapsed); const handleClose = () => { - setCollapsed(!collapsed); + dispatch(uiActions.setCollapsed(!collapsed)); }; - useEffect(() => setCollapsed(isTablet), [isTablet]); + useEffect(() => uiActions.setCollapsed(isTablet), [isTablet]); return (
diff --git a/modern/src/common/deviceCategories.js b/modern/src/common/deviceCategories.js index f5d749a..69e4eb5 100644 --- a/modern/src/common/deviceCategories.js +++ b/modern/src/common/deviceCategories.js @@ -1,6 +1,7 @@ export default [ 'default', 'animal', + 'backhoe', 'bicycle', 'boat', 'bus', diff --git a/modern/src/map/Map.js b/modern/src/map/Map.js index a5f69e0..10630d8 100644 --- a/modern/src/map/Map.js +++ b/modern/src/map/Map.js @@ -20,6 +20,8 @@ element.style.height = '100%'; export const map = new maplibregl.Map({ container: element, + center: [-100.360, 23.191], + zoom: 5 }); let ready = false; @@ -48,13 +50,11 @@ const initMap = async () => { }); await Promise.all(deviceCategories.map(async (category) => { const results = []; - ['green', 'red', 'gray'].forEach((color) => { - results.push(loadImage(`images/icon/${category}.png`).then((icon) => { - map.addImage(`${category}-${color}`, prepareIcon(background, icon, palette.common[color]), { - pixelRatio: window.devicePixelRatio, - }); - })); - }); + results.push(loadImage(`images/icon/${category.toLowerCase()}.png`).then((icon) => { + map.addImage(`${category.toLowerCase()}-map`, prepareIcon(background, icon, null), { + pixelRatio: window.devicePixelRatio, + }); + })); await Promise.all(results); })); } @@ -62,7 +62,7 @@ const initMap = async () => { }; map.addControl(new maplibregl.NavigationControl({ - showCompass: false, + showCompass: false })); const switcher = new SwitcherControl( @@ -70,7 +70,7 @@ const switcher = new SwitcherControl( () => { const waiting = () => { if (!map.loaded()) { - setTimeout(waiting, 100); + setTimeout(waiting, 2000); } else { initMap(); } diff --git a/modern/src/map/PositionsMap.js b/modern/src/map/PositionsMap.js index 8d10053..f1ac3b7 100644 --- a/modern/src/map/PositionsMap.js +++ b/modern/src/map/PositionsMap.js @@ -104,7 +104,7 @@ const PositionsMap = ({ positions }) => { source: id, filter: ['!', ['has', 'point_count']], layout: { - 'icon-image': '{category}-{color}', + 'icon-image': '{category}-map', 'icon-allow-overlap': true, 'text-field': '{name}', 'text-allow-overlap': true, diff --git a/modern/src/map/mapUtil.js b/modern/src/map/mapUtil.js index ca7b3af..43038ef 100644 --- a/modern/src/map/mapUtil.js +++ b/modern/src/map/mapUtil.js @@ -36,10 +36,12 @@ export const prepareIcon = (background, icon, color) => { canvas.style.height = `${background.height}px`; const context = canvas.getContext('2d'); - context.drawImage(background, 0, 0, canvas.width, canvas.height); + if (!icon) { + context.drawImage(background, 0, 0, canvas.width, canvas.height); + } if (icon) { - const iconRatio = 0.8; + const iconRatio = 1; const imageWidth = canvas.width * iconRatio; const imageHeight = canvas.height * iconRatio; /*if (navigator.userAgent.indexOf('Firefox') > 0) {*/ diff --git a/modern/src/setupProxy.js b/modern/src/setupProxy.js index cd6a2fa..bc0daf0 100644 --- a/modern/src/setupProxy.js +++ b/modern/src/setupProxy.js @@ -3,6 +3,6 @@ const proxy = require('http-proxy-middleware'); module.exports = (app) => { - app.use(proxy('/api/socket', { target: `ws://${process.env.REACT_APP_URL_NAME}`, ws: true })); - app.use(proxy('/api', { target: `http://${process.env.REACT_APP_URL_NAME}` })); -}; + app.use(proxy('/api/socket', { target: `wss://${process.env.REACT_APP_URL_NAME}`, changeOrigin: true, ws: true })); + app.use(proxy('/api', { target: `https://${process.env.REACT_APP_URL_NAME}`, changeOrigin: true })); +}; \ No newline at end of file diff --git a/modern/src/store/index.js b/modern/src/store/index.js index 6e2bb20..ebd3f43 100644 --- a/modern/src/store/index.js +++ b/modern/src/store/index.js @@ -7,6 +7,7 @@ import { geofencesReducer as geofences } from './geofences'; import { groupsReducer as groups } from './groups'; import { driversReducer as drivers } from './drivers'; import { maintenancesReducer as maintenances } from './maintenances'; +import { uiReducer as ui } from './ui'; const reducer = combineReducers({ session, @@ -16,6 +17,7 @@ const reducer = combineReducers({ groups, drivers, maintenances, + ui }); export { sessionActions } from './session'; @@ -25,5 +27,6 @@ export { geofencesActions } from './geofences'; export { groupsActions } from './groups'; export { driversActions } from './drivers'; export { maintenancesActions } from './maintenances'; +export { uiActions } from './ui'; export default configureStore({ reducer }); diff --git a/modern/src/store/ui.js b/modern/src/store/ui.js new file mode 100644 index 0000000..0783492 --- /dev/null +++ b/modern/src/store/ui.js @@ -0,0 +1,16 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const { reducer, actions } = createSlice({ + name: 'ui', + initialState: { + collapsed: true + }, + reducers: { + setCollapsed(state, action) { + state.collapsed = action.payload; + }, + }, +}); + +export { actions as uiActions }; +export { reducer as uiReducer }; -- cgit v1.2.3