Commit b078e025 by asranov0003

feat: initialise routes, browser history, messangers, calls and recording pages content

parent 43363d22
...@@ -113,6 +113,10 @@ ...@@ -113,6 +113,10 @@
"createTitle": "Create your PIN Code", "createTitle": "Create your PIN Code",
"confirmTitle": "Confirm your PIN Code" "confirmTitle": "Confirm your PIN Code"
}, },
"device": {
"deleteDevice": "Delete device",
"deleteDeviceDesc": "Are you sure you want to delete this device?"
},
"logout": { "logout": {
"title": "Logout", "title": "Logout",
"desc": "Are you sure you want to continue?" "desc": "Are you sure you want to continue?"
...@@ -124,7 +128,8 @@ ...@@ -124,7 +128,8 @@
"continue": "Continue", "continue": "Continue",
"resetPassword": "Reset Password", "resetPassword": "Reset Password",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel" "cancel": "Cancel",
"delete": "Delete"
}, },
"notFound": { "notFound": {
"code": "404", "code": "404",
......
.browserhistory {
padding-top: 60px;
}
.browserhistory__content {
min-height: calc(100vh - 75px);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.browserhistory__content__header {
display: flex;
align-items: center;
justify-content: space-between;
}
.browserhistory__content__header__icon {
font-size: 1.5rem;
cursor: pointer;
}
.browserhistory__filter {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.browserhistory__filter__title {
font-weight: bold;
}
.browserhistory__filter__dates {
display: flex;
justify-content: space-between;
align-items: center;
}
.browserhistory__filter__date label {
margin-right: 0.5rem;
font-weight: bold;
}
\ No newline at end of file
import React from "react"; import React from "react";
import "./BrowserHistory.css"; import "./BrowserHistory.css";
import SectionHeader from "../../layouts/SectionHeader";
import { MdInfoOutline } from "react-icons/md";
import CButton from "../../components/CButton";
const BrowserHistory: React.FC = () => { const BrowserHistory: React.FC = () => {
return <div>BrowserHistory</div>; return (
<div className="browserhistory wrapper">
<SectionHeader to="/home" />
<div className="browserhistory__content">
<div>
<div className="browserhistory__content__header">
<h3>Browser History</h3>
<MdInfoOutline className="browserhistory__content__header__icon" />
</div>
<p className="browserhistory__content__empty">No data</p>
</div>
<div className="browserhistory__filter">
<p className="browserhistory__filter__title">Select Dates</p>
<div className="browserhistory__filter__dates">
<div className="browserhistory__filter__date">
<label htmlFor="from">From</label>
<input type="date" id="from" />
</div>
<div className="browserhistory__filter__date">
<label htmlFor="to">To</label>
<input type="date" id="to" />
</div>
</div>
<CButton title="Search" />
</div>
</div>
</div>
);
}; };
export default BrowserHistory; export default BrowserHistory;
.calls {
padding-top: 60px;
}
.calls__content {
min-height: calc(100vh - 75px);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.calls__content__header {
display: flex;
align-items: center;
justify-content: space-between;
}
.calls__content__header__icon {
font-size: 1.5rem;
cursor: pointer;
}
.calls__filter {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.calls__filter__title {
font-weight: bold;
}
.calls__filter__dates {
display: flex;
justify-content: space-between;
align-items: center;
}
.calls__filter__date label {
margin-right: 0.5rem;
font-weight: bold;
}
\ No newline at end of file
import React from "react"; import React from "react";
import "./Calls.css"; import "./Calls.css";
import SectionHeader from "../../layouts/SectionHeader";
import { MdInfoOutline } from "react-icons/md";
import CButton from "../../components/CButton";
const Calls: React.FC = () => { const Calls: React.FC = () => {
return <div>Calls</div>; return (
<div className="calls wrapper">
<SectionHeader to="/home" />
<div className="calls__content">
<div>
<div className="calls__content__header">
<h3>Calls</h3>
<MdInfoOutline className="calls__content__header__icon" />
</div>
<p className="calls__content__empty">No data</p>
</div>
<div className="calls__filter">
<p className="calls__filter__title">Select Dates</p>
<div className="calls__filter__dates">
<div className="calls__filter__date">
<label htmlFor="from">From</label>
<input type="date" id="from" />
</div>
<div className="calls__filter__date">
<label htmlFor="to">To</label>
<input type="date" id="to" />
</div>
</div>
<CButton title="Search" />
</div>
</div>
</div>
);
}; };
export default Calls; export default Calls;
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
border-radius: 10px; border-radius: 10px;
color: var(--text-color); color: var(--text-color);
font-size: 0.8rem; font-size: 0.8rem;
cursor: pointer;
} }
.home__menu__icon { .home__menu__icon {
......
...@@ -25,8 +25,11 @@ import { ...@@ -25,8 +25,11 @@ import {
import { fetchDeviceData } from "../../stores/slices/deviceSlice"; import { fetchDeviceData } from "../../stores/slices/deviceSlice";
import GoogleMapReact from "google-map-react"; import GoogleMapReact from "google-map-react";
import CMarker from "../../components/CMarker/CMarker"; import CMarker from "../../components/CMarker/CMarker";
import CModal from "../../components/CModal";
import CButton from "../../components/CButton";
const Home: React.FC = () => { const Home: React.FC = () => {
const [isOpenRemoveDeviceModal, setIsOpenRemoveDeviceModal] = useState(false);
const [mapCenter, setMapCenter] = useState({ const [mapCenter, setMapCenter] = useState({
lat: 37.33, lat: 37.33,
lng: -122, lng: -122,
...@@ -54,6 +57,10 @@ const Home: React.FC = () => { ...@@ -54,6 +57,10 @@ const Home: React.FC = () => {
} }
}, [deviceData]); }, [deviceData]);
const toggleRemoveDeviceModal = () => {
setIsOpenRemoveDeviceModal((prev) => !prev);
};
return ( return (
<> <>
<div className="home"> <div className="home">
...@@ -150,7 +157,10 @@ const Home: React.FC = () => { ...@@ -150,7 +157,10 @@ const Home: React.FC = () => {
<p>{t("menu.recordingEnvironment")}</p> <p>{t("menu.recordingEnvironment")}</p>
</Link> </Link>
<div className="home__menu__link"> <div
className="home__menu__link"
onClick={toggleRemoveDeviceModal}
>
<RiDeleteBinLine className="home__menu__icon" /> <RiDeleteBinLine className="home__menu__icon" />
<p>{t("menu.removeDevice")}</p> <p>{t("menu.removeDevice")}</p>
</div> </div>
...@@ -158,6 +168,24 @@ const Home: React.FC = () => { ...@@ -158,6 +168,24 @@ const Home: React.FC = () => {
</Sheet.Content> </Sheet.Content>
</Sheet.Container> </Sheet.Container>
</Sheet> </Sheet>
<CModal
isOpen={isOpenRemoveDeviceModal}
onToggle={toggleRemoveDeviceModal}
content={
<div className="modal__box">
<h3 className="modal__box__title">{t("device.deleteDevice")}</h3>
<p>{t("device.deleteDeviceDesc")}</p>
<div className="modal__box__actions">
<CButton
title={t("button.cancel")}
onClick={toggleRemoveDeviceModal}
/>
<CButton title={t("button.delete")} variant="danger" />
</div>
</div>
}
/>
</> </>
); );
}; };
......
.messengers {
padding-top: 60px;
}
.messengers__content {
min-height: calc(100vh - 75px);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.messengers__content__header {
display: flex;
align-items: center;
justify-content: space-between;
}
.messengers__content__header__icon {
font-size: 1.5rem;
cursor: pointer;
}
.messengers__filter {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.messengers__filter__title {
font-weight: bold;
}
.messengers__filter__dates {
display: flex;
justify-content: space-between;
align-items: center;
}
.messengers__filter__date label {
margin-right: 0.5rem;
font-weight: bold;
}
\ No newline at end of file
import React from "react"; import React from "react";
import "./Messengers.css"; import "./Messengers.css";
import SectionHeader from "../../layouts/SectionHeader";
import { MdInfoOutline } from "react-icons/md";
import CButton from "../../components/CButton";
const Messengers: React.FC = () => { const Messengers: React.FC = () => {
return <div>Messengers</div>; return (
<div className="messengers wrapper">
<SectionHeader to="/home" />
<div className="messengers__content">
<div>
<div className="messengers__content__header">
<h3>Messengers</h3>
<MdInfoOutline className="messengers__content__header__icon" />
</div>
<p className="messengers__content__empty">No data</p>
</div>
<div className="messengers__filter">
<p className="messengers__filter__title">Select Dates</p>
<div className="messengers__filter__dates">
<div className="messengers__filter__date">
<label htmlFor="from">From</label>
<input type="date" id="from" />
</div>
<div className="messengers__filter__date">
<label htmlFor="to">To</label>
<input type="date" id="to" />
</div>
</div>
<CButton title="Search" />
</div>
</div>
</div>
);
}; };
export default Messengers; export default Messengers;
.recording {
padding-top: 60px;
}
.recording__content {
min-height: calc(100vh - 75px);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.recording__content__header {
display: flex;
align-items: center;
justify-content: space-between;
}
.recording__content__header__icon {
font-size: 1.5rem;
cursor: pointer;
}
.recording__filter {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.recording__filter__title {
font-weight: bold;
}
.recording__filter__dates {
display: flex;
justify-content: space-between;
align-items: center;
}
.recording__filter__date label {
margin-right: 0.5rem;
font-weight: bold;
}
\ No newline at end of file
import React from "react"; import React from "react";
import "./Recording.css"; import "./Recording.css";
import SectionHeader from "../../layouts/SectionHeader";
import { MdInfoOutline } from "react-icons/md";
import CButton from "../../components/CButton";
const Recording: React.FC = () => { const Recording: React.FC = () => {
return <div>Recording</div>; return (
<div className="recording wrapper">
<SectionHeader to="/home" />
<div className="recording__content">
<div>
<div className="recording__content__header">
<h3>Recording</h3>
<MdInfoOutline className="recording__content__header__icon" />
</div>
<p className="recording__content__empty">No data</p>
</div>
<div className="recording__filter">
<p className="recording__filter__title">Select Dates</p>
<div className="recording__filter__dates">
<div className="recording__filter__date">
<label htmlFor="from">From</label>
<input type="date" id="from" />
</div>
<div className="recording__filter__date">
<label htmlFor="to">To</label>
<input type="date" id="to" />
</div>
</div>
<CButton title="Search" />
</div>
</div>
</div>
);
}; };
export default Recording; export default Recording;
.routes {
padding-top: 60px;
}
.routes__content {
min-height: calc(100vh - 75px);
display: flex;
flex-direction: column;
justify-content: space-between;
}
.routes__content__header {
display: flex;
align-items: center;
justify-content: space-between;
}
.routes__content__header__icon {
font-size: 1.5rem;
cursor: pointer;
}
.routes__filter {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.routes__filter__title {
font-weight: bold;
}
.routes__filter__dates {
display: flex;
justify-content: space-between;
align-items: center;
}
.routes__filter__date label {
margin-right: 0.5rem;
font-weight: bold;
}
\ No newline at end of file
import React from "react"; import React from "react";
import "./Routes.css"; import "./Routes.css";
import SectionHeader from "../../layouts/SectionHeader";
import CButton from "../../components/CButton";
import { MdInfoOutline } from "react-icons/md";
const Routes: React.FC = () => { const Routes: React.FC = () => {
return <div>Routes</div>; return (
<div className="routes wrapper">
<SectionHeader to="/home" />
<div className="routes__content">
<div>
<div className="routes__content__header">
<h3>Routes</h3>
<MdInfoOutline className="routes__content__header__icon" />
</div>
<p className="routes__content__empty">No data</p>
</div>
<div className="routes__filter">
<p className="routes__filter__title">Select Dates</p>
<div className="routes__filter__dates">
<div className="routes__filter__date">
<label htmlFor="from">From</label>
<input type="date" id="from" />
</div>
<div className="routes__filter__date">
<label htmlFor="to">To</label>
<input type="date" id="to" />
</div>
</div>
<CButton title="Search" />
</div>
</div>
</div>
);
}; };
export default Routes; export default Routes;
...@@ -36,8 +36,6 @@ export const fetchAppList = createAsyncThunk( ...@@ -36,8 +36,6 @@ export const fetchAppList = createAsyncThunk(
wIcons: true, wIcons: true,
}); });
console.log("All Apps Response: ", response.list);
return response.list; return response.list;
} catch (error) { } catch (error) {
if (typeof error === "object" && error !== null && "message" in error) { if (typeof error === "object" && error !== null && "message" in error) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment