Files
cinny/src/app/organisms/navigation/Drawer.jsx
T

55 lines
1.6 KiB
React
Raw Normal View History

2021-07-28 18:45:52 +05:30
import React, { useState, useEffect } from 'react';
import './Drawer.scss';
import cons from '../../../client/state/cons';
import navigation from '../../../client/state/navigation';
import ScrollView from '../../atoms/scroll/ScrollView';
import DrawerHeader from './DrawerHeader';
2021-09-03 17:58:01 +05:30
import DrawerBreadcrumb from './DrawerBreadcrumb';
import Home from './Home';
import Directs from './Directs';
2021-07-28 18:45:52 +05:30
2021-08-30 08:31:13 +05:30
function Drawer() {
2021-09-03 17:58:01 +05:30
const [selectedTab, setSelectedTab] = useState('home');
const [spaceId, setSpaceId] = useState(navigation.selectedSpaceId);
2021-08-30 08:31:13 +05:30
function onTabChanged(tabId) {
2021-09-03 17:58:01 +05:30
setSelectedTab(tabId);
}
function onSpaceSelected(roomId) {
setSpaceId(roomId);
2021-08-30 08:31:13 +05:30
}
useEffect(() => {
navigation.on(cons.events.navigation.TAB_CHANGED, onTabChanged);
2021-09-03 17:58:01 +05:30
navigation.on(cons.events.navigation.SPACE_SELECTED, onSpaceSelected);
2021-08-30 08:31:13 +05:30
return () => {
navigation.removeListener(cons.events.navigation.TAB_CHANGED, onTabChanged);
2021-09-03 17:58:01 +05:30
navigation.removeListener(cons.events.navigation.SPACE_SELECTED, onSpaceSelected);
2021-08-30 08:31:13 +05:30
};
}, []);
2021-07-28 18:45:52 +05:30
return (
<div className="drawer">
2021-09-03 17:58:01 +05:30
<DrawerHeader selectedTab={selectedTab} spaceId={spaceId} />
2021-07-28 18:45:52 +05:30
<div className="drawer__content-wrapper">
2021-09-03 17:58:01 +05:30
{selectedTab === 'home' && <DrawerBreadcrumb />}
2021-08-31 18:43:31 +05:30
<div className="rooms__wrapper">
2021-07-28 18:45:52 +05:30
<ScrollView autoHide>
2021-08-31 18:43:31 +05:30
<div className="rooms-container">
{
2021-09-03 17:58:01 +05:30
selectedTab === 'home'
? <Home spaceId={spaceId} />
: <Directs />
}
</div>
2021-07-28 18:45:52 +05:30
</ScrollView>
</div>
</div>
</div>
);
}
export default Drawer;