done users and roles page responsive view review nalang ang polish
This commit is contained in:
@@ -23,7 +23,10 @@ const Toggle = ({ tabs = [], activeTab, onChange }) => {
|
|||||||
|
|
||||||
{isMobile && activeTab === "permissions" && (
|
{isMobile && activeTab === "permissions" && (
|
||||||
<div className={styles.container}>
|
<div className={styles.container}>
|
||||||
<MobileSearchBar />
|
<div className={styles.searchBar}>
|
||||||
|
<MobileSearchBar />
|
||||||
|
</div>
|
||||||
|
|
||||||
<button>
|
<button>
|
||||||
<PlusIcon />
|
<PlusIcon />
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -20,13 +20,18 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 16px;
|
gap: 16px;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
|
padding: 8px 0;
|
||||||
}
|
}
|
||||||
|
.searchBar {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.container > button {
|
.container > button {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
border: none;
|
border: none;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: end;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background: #27293b;
|
background: #27293b;
|
||||||
|
|||||||
@@ -20,15 +20,13 @@ const Permissions = ({ sampleData = [] }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={editUserStyle.wrapper}>
|
{sampleData.length === 0 ? (
|
||||||
{sampleData.length === 0 ? (
|
<div className={editUserStyle.permissionDefaultState}>
|
||||||
// Default Message
|
<p>No permission added yet</p>
|
||||||
<div className={editUserStyle.permissionDefaultState}>
|
</div>
|
||||||
<p>No permission added yet</p>
|
) : (
|
||||||
</div>
|
<div className={editUserStyle.permissionsList}>
|
||||||
) : (
|
{sampleData.map((perm, index) => {
|
||||||
// Sampple Data(static)
|
|
||||||
sampleData.map((perm, index) => {
|
|
||||||
return (
|
return (
|
||||||
<div className={editUserStyle.permissions} key={index}>
|
<div className={editUserStyle.permissions} key={index}>
|
||||||
<div className={editUserStyle.permissionsItem}>
|
<div className={editUserStyle.permissionsItem}>
|
||||||
@@ -40,9 +38,9 @@ const Permissions = ({ sampleData = [] }) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})
|
})}
|
||||||
)}
|
</div>
|
||||||
</div>
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
|
|
||||||
color: #d2d3e1;
|
color: #d2d3e1;
|
||||||
font-family: Inter;
|
font-family: Inter;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
@@ -53,22 +52,13 @@
|
|||||||
background: #27293b;
|
background: #27293b;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
display: flex;
|
|
||||||
height: 43.813px;
|
|
||||||
padding: 8px 16px;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
align-self: stretch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.permissionDefaultState {
|
.permissionDefaultState {
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
|
height: 43.813px;
|
||||||
|
padding: 8px 16px;
|
||||||
}
|
}
|
||||||
.permissionDefaultState p {
|
.permissionDefaultState p {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -84,16 +74,19 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
}
|
}
|
||||||
|
.permissionsList {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
.permissions {
|
.permissions {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 43.813px;
|
height: 43.813px;
|
||||||
padding: 8px 16px;
|
padding: 8px 8px 8px 16px;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
border-bottom: 0.5px solid #2e3042;
|
border-bottom: 0.5px solid #2e3042;
|
||||||
}
|
}
|
||||||
|
|
||||||
.permissions:hover {
|
.permissions:hover {
|
||||||
border-bottom: 1px solid rgba(129, 135, 255, 0.25);
|
border-bottom: 1px solid rgba(129, 135, 255, 0.25);
|
||||||
background: rgba(129, 135, 255, 0.05);
|
background: rgba(129, 135, 255, 0.05);
|
||||||
@@ -153,21 +146,21 @@
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
}
|
}
|
||||||
|
|
||||||
.svgContainer {
|
.svgContainer {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
display: flex;
|
|
||||||
padding: 24px 16px 0 16px;
|
|
||||||
align-items: flex-start;
|
|
||||||
align-self: stretch;
|
|
||||||
}
|
|
||||||
.permissionDefaultState {
|
.permissionDefaultState {
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
|
padding: 24px 16px 0 16px;
|
||||||
|
}
|
||||||
|
.permissionsList {
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
.permissions {
|
||||||
|
padding: 8px 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.permissionDefaultState > p {
|
.permissionDefaultState > p {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import React from "react";
|
"use client";
|
||||||
|
import React, { useState } from "react";
|
||||||
import TopHeader from "@/app/components/topHeader/TopHeader";
|
import TopHeader from "@/app/components/topHeader/TopHeader";
|
||||||
import globalStyle from "../../globalStyle.module.css";
|
import globalStyle from "../../globalStyle.module.css";
|
||||||
import editRoleStyle from "./styles.module.css";
|
import editRoleStyle from "./styles.module.css";
|
||||||
import TextField from "@/app/components/fields/textfield";
|
import TextField from "@/app/components/fields/textfield";
|
||||||
import Permissions from "@/app/components/permissions/Permissions";
|
import Permissions from "@/app/components/permissions/Permissions";
|
||||||
|
import Toggle from "@/app/components/mobileToggleTab/Toggle";
|
||||||
|
|
||||||
const ViewRolePage = () => {
|
const ViewRolePage = () => {
|
||||||
const sampleData = [
|
const sampleData = [
|
||||||
@@ -22,6 +24,8 @@ const ViewRolePage = () => {
|
|||||||
{ permission: "service.delete" },
|
{ permission: "service.delete" },
|
||||||
{ permission: "service.update" },
|
{ permission: "service.update" },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const [activeTab, setActiveTab] = useState("details");
|
||||||
return (
|
return (
|
||||||
<div className={globalStyle.section}>
|
<div className={globalStyle.section}>
|
||||||
<div className={globalStyle.mainContainer}>
|
<div className={globalStyle.mainContainer}>
|
||||||
@@ -32,23 +36,30 @@ const ViewRolePage = () => {
|
|||||||
state="view"
|
state="view"
|
||||||
requiredButtons={["back", "title", "edit", "download"]}
|
requiredButtons={["back", "title", "edit", "download"]}
|
||||||
/>
|
/>
|
||||||
<div className={editRoleStyle.addRoleContainer}>
|
<div className={editRoleStyle.editRoleContainer}>
|
||||||
|
{/* Mobile Toggle */}
|
||||||
|
<Toggle
|
||||||
|
activeTab={activeTab}
|
||||||
|
onChange={setActiveTab}
|
||||||
|
tabs={[
|
||||||
|
{ label: "Role Details", value: "details" },
|
||||||
|
{ label: "Permissions", value: "permissions" },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
{/* Input fields Container */}
|
{/* Input fields Container */}
|
||||||
<div className={editRoleStyle.inputFieldContainer}>
|
<div className={editRoleStyle.inputFieldContainer}>
|
||||||
{/* User Details */}
|
{/* User Details */}
|
||||||
<div className={editRoleStyle.userDetails}>
|
<div
|
||||||
{/* Header */}
|
className={`${editRoleStyle.roleDetails} ${activeTab !== "details" ? editRoleStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
<div className={editRoleStyle.header}>
|
<div className={editRoleStyle.header}>
|
||||||
<div>
|
<div>
|
||||||
<p>Role Details</p>
|
<p>Role Details</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* Input fields */}
|
|
||||||
<form className={editRoleStyle.fields}>
|
<form className={editRoleStyle.fields}>
|
||||||
{/* Email */}
|
|
||||||
<div className={editRoleStyle.inputMainContainer}>
|
<div className={editRoleStyle.inputMainContainer}>
|
||||||
<div className={editRoleStyle.inputContainer}>
|
<div className={editRoleStyle.inputContainer}>
|
||||||
{/* Label */}
|
|
||||||
<div className={editRoleStyle.label}>
|
<div className={editRoleStyle.label}>
|
||||||
<p>Name</p>
|
<p>Name</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -77,7 +88,12 @@ const ViewRolePage = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Permissions */}
|
{/* Permissions */}
|
||||||
<Permissions sampleData={sampleData} />
|
<div
|
||||||
|
className={`${editRoleStyle.userPermissions} ${activeTab !== "permissions" ? editRoleStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
|
<div className={editRoleStyle.imanginaryDiv}></div>
|
||||||
|
<Permissions sampleData={sampleData} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
.addRoleContainer {
|
.editRoleContainer {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 0px 144px 0px 144px;
|
padding: 0px 144px 0px 144px;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
}
|
}
|
||||||
.userDetails {
|
.roleDetails {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
padding: 20px 24px 48px 24px;
|
padding: 20px 24px 48px 24px;
|
||||||
@@ -23,6 +23,21 @@
|
|||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background: #1d1e2a;
|
background: #1d1e2a;
|
||||||
}
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 18px;
|
||||||
|
}
|
||||||
|
.userPermissions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex: 1 0 0;
|
||||||
|
align-self: stretch;
|
||||||
|
height: calc(100vh - 175px);
|
||||||
|
position: relative;
|
||||||
|
overflow-y: auto;
|
||||||
|
scrollbar-width: none;
|
||||||
|
padding-bottom: 60px;
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-bottom: 24px;
|
padding-bottom: 24px;
|
||||||
@@ -93,6 +108,36 @@
|
|||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
}
|
}
|
||||||
|
|
||||||
.imanginaryDiv {
|
@media (max-width: 950px) {
|
||||||
padding: 18px;
|
.hiddenMobile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.editRoleContainer {
|
||||||
|
align-self: stretch;
|
||||||
|
padding: 0 16px;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0px;
|
||||||
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.roleDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
margin-top: 32x;
|
||||||
|
}
|
||||||
|
|
||||||
|
.userPermissions {
|
||||||
|
height: calc(100vh - 295px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.roleDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
import React from "react";
|
import React, { useState } from "react";
|
||||||
import TopHeader from "@/app/components/topHeader/TopHeader";
|
import TopHeader from "@/app/components/topHeader/TopHeader";
|
||||||
import globalStyle from "../../globalStyle.module.css";
|
import globalStyle from "../../globalStyle.module.css";
|
||||||
import addRoleStyle from "./styles.module.css";
|
import addRoleStyle from "./styles.module.css";
|
||||||
@@ -7,8 +7,11 @@ import TextField from "@/app/components/fields/textfield";
|
|||||||
import Permissions from "@/app/components/permissions/Permissions";
|
import Permissions from "@/app/components/permissions/Permissions";
|
||||||
import useUserForm from "@/app/hooks/useUserForm";
|
import useUserForm from "@/app/hooks/useUserForm";
|
||||||
import Alert from "@/app/components/alerts/Alert";
|
import Alert from "@/app/components/alerts/Alert";
|
||||||
|
import Toggle from "@/app/components/mobileToggleTab/Toggle";
|
||||||
|
|
||||||
const AddRolePage = () => {
|
const AddRolePage = () => {
|
||||||
|
// Mobile
|
||||||
|
const [activeTab, setActiveTab] = useState("details");
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
@@ -36,30 +39,36 @@ const AddRolePage = () => {
|
|||||||
requiredButtons={["title", "save"]}
|
requiredButtons={["title", "save"]}
|
||||||
/>
|
/>
|
||||||
<div className={addRoleStyle.addRoleContainer}>
|
<div className={addRoleStyle.addRoleContainer}>
|
||||||
|
<Toggle
|
||||||
|
activeTab={activeTab}
|
||||||
|
onChange={setActiveTab}
|
||||||
|
tabs={[
|
||||||
|
{ label: "Role Details", value: "details" },
|
||||||
|
{ label: "Permissions", value: "permissions" },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
{/* Input fields Container */}
|
{/* Input fields Container */}
|
||||||
<div className={addRoleStyle.inputFieldContainer}>
|
<div className={addRoleStyle.inputFieldContainer}>
|
||||||
{/* User Details */}
|
{/* User Details */}
|
||||||
<div className={addRoleStyle.roleDetails}>
|
<div
|
||||||
{/* Header */}
|
className={`${addRoleStyle.roleDetails} ${activeTab !== "details" ? addRoleStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
<div className={addRoleStyle.header}>
|
<div className={addRoleStyle.header}>
|
||||||
<div>
|
<div>
|
||||||
<p>Role Details</p>
|
<p>Role Details</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* Input fields */}
|
{/* Ibalhin ning form na tag */}
|
||||||
<form
|
<form
|
||||||
className={addRoleStyle.fields}
|
className={addRoleStyle.fields}
|
||||||
id="form"
|
id="form"
|
||||||
onSubmit={handleSubmit(onSubmit)}
|
onSubmit={handleSubmit(onSubmit)}
|
||||||
>
|
>
|
||||||
{/* Email */}
|
|
||||||
<div className={addRoleStyle.inputMainContainer}>
|
<div className={addRoleStyle.inputMainContainer}>
|
||||||
<div className={addRoleStyle.inputContainer}>
|
<div className={addRoleStyle.inputContainer}>
|
||||||
{/* Label */}
|
|
||||||
<div className={addRoleStyle.label}>
|
<div className={addRoleStyle.label}>
|
||||||
<p>Name</p>
|
<p>Name</p>
|
||||||
</div>
|
</div>
|
||||||
{/* Input field */}
|
|
||||||
<div className={addRoleStyle.inputField}>
|
<div className={addRoleStyle.inputField}>
|
||||||
<TextField
|
<TextField
|
||||||
placeHolder="Enter name"
|
placeHolder="Enter name"
|
||||||
@@ -69,14 +78,11 @@ const AddRolePage = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* Full Name */}
|
|
||||||
<div className={addRoleStyle.inputMainContainer}>
|
<div className={addRoleStyle.inputMainContainer}>
|
||||||
<div className={addRoleStyle.inputContainer}>
|
<div className={addRoleStyle.inputContainer}>
|
||||||
{/* Label */}
|
|
||||||
<div className={addRoleStyle.label}>
|
<div className={addRoleStyle.label}>
|
||||||
<p>Organization ID</p>
|
<p>Organization ID</p>
|
||||||
</div>
|
</div>
|
||||||
{/* Input field */}
|
|
||||||
<div className={addRoleStyle.inputField}>
|
<div className={addRoleStyle.inputField}>
|
||||||
<TextField
|
<TextField
|
||||||
placeHolder="Enter organization ID"
|
placeHolder="Enter organization ID"
|
||||||
@@ -90,7 +96,12 @@ const AddRolePage = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Permissions */}
|
{/* Permissions */}
|
||||||
<Permissions />
|
<div
|
||||||
|
className={`${addRoleStyle.userPermissions} ${activeTab !== "permissions" ? addRoleStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
|
<div className={addRoleStyle.imanginaryDiv}></div>
|
||||||
|
<Permissions />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -22,7 +22,21 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background: #1d1e2a;
|
background: #1d1e2a;
|
||||||
background: color(display-p3 0.1137 0.1176 0.1608);
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 18px;
|
||||||
|
}
|
||||||
|
.userPermissions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex: 1 0 0;
|
||||||
|
align-self: stretch;
|
||||||
|
height: calc(100vh - 175px);
|
||||||
|
position: relative;
|
||||||
|
overflow: auto;
|
||||||
|
scrollbar-width: none;
|
||||||
|
padding-bottom: 60px;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -42,7 +56,6 @@
|
|||||||
.header > div > p {
|
.header > div > p {
|
||||||
width: 163px;
|
width: 163px;
|
||||||
color: #d2d3e1;
|
color: #d2d3e1;
|
||||||
color: color(display-p3 0.8235 0.8275 0.8784);
|
|
||||||
font-family: Inter;
|
font-family: Inter;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
@@ -79,7 +92,6 @@
|
|||||||
}
|
}
|
||||||
.label > p {
|
.label > p {
|
||||||
color: #d2d3e1;
|
color: #d2d3e1;
|
||||||
color: color(display-p3 0.8235 0.8275 0.8784);
|
|
||||||
font-family: Inter;
|
font-family: Inter;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
@@ -93,6 +105,35 @@
|
|||||||
gap: 8px;
|
gap: 8px;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
}
|
}
|
||||||
.imanginaryDiv {
|
@media (max-width: 950px) {
|
||||||
padding: 18px;
|
.hiddenMobile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.addRoleContainer {
|
||||||
|
align-self: stretch;
|
||||||
|
padding: 0 16px;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0px;
|
||||||
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.roleDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
margin-top: 32px;
|
||||||
|
}
|
||||||
|
.userPermissions {
|
||||||
|
height: calc(100vh - 295px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.roleDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { useState } from "react";
|
|||||||
import TextField from "@/app/components/fields/textfield";
|
import TextField from "@/app/components/fields/textfield";
|
||||||
import SelectField from "@/app/components/select/SelectField";
|
import SelectField from "@/app/components/select/SelectField";
|
||||||
import Permissions from "@/app/components/permissions/Permissions";
|
import Permissions from "@/app/components/permissions/Permissions";
|
||||||
|
import Toggle from "@/app/components/mobileToggleTab/Toggle";
|
||||||
|
|
||||||
const ViewUserPage = () => {
|
const ViewUserPage = () => {
|
||||||
const sampleData = [
|
const sampleData = [
|
||||||
@@ -26,6 +27,9 @@ const ViewUserPage = () => {
|
|||||||
{ permission: "service.update" },
|
{ permission: "service.update" },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Mobile
|
||||||
|
const [activeTab, setActiveTab] = useState("details");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={globalStyle.section}>
|
<div className={globalStyle.section}>
|
||||||
<div className={globalStyle.mainContainer}>
|
<div className={globalStyle.mainContainer}>
|
||||||
@@ -36,12 +40,22 @@ const ViewUserPage = () => {
|
|||||||
state="view"
|
state="view"
|
||||||
requiredButtons={["back", "title", "edit", "download"]}
|
requiredButtons={["back", "title", "edit", "download"]}
|
||||||
/>
|
/>
|
||||||
<div className={editUserStyle.addUserContainer}>
|
<div className={editUserStyle.editUserContainer}>
|
||||||
|
{/* Mobile Toggle */}
|
||||||
|
<Toggle
|
||||||
|
activeTab={activeTab}
|
||||||
|
onChange={setActiveTab}
|
||||||
|
tabs={[
|
||||||
|
{ label: "User Details", value: "details" },
|
||||||
|
{ label: "Permissions", value: "permissions" },
|
||||||
|
]}
|
||||||
|
/>
|
||||||
{/* Input fields Container */}
|
{/* Input fields Container */}
|
||||||
<div className={editUserStyle.inputFieldContainer}>
|
<div className={editUserStyle.inputFieldContainer}>
|
||||||
{/* User Details */}
|
{/* User Details */}
|
||||||
<div className={editUserStyle.userDetails}>
|
<div
|
||||||
{/* Header */}
|
className={`${editUserStyle.userDetails} ${activeTab !== "details" ? editUserStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
<div className={editUserStyle.header}>
|
<div className={editUserStyle.header}>
|
||||||
<div>
|
<div>
|
||||||
<p>User Details</p>
|
<p>User Details</p>
|
||||||
@@ -61,10 +75,8 @@ const ViewUserPage = () => {
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{/* Email */}
|
|
||||||
<div className={editUserStyle.inputMainContainer}>
|
<div className={editUserStyle.inputMainContainer}>
|
||||||
<div className={editUserStyle.inputContainer}>
|
<div className={editUserStyle.inputContainer}>
|
||||||
{/* Label */}
|
|
||||||
<div className={editUserStyle.label}>
|
<div className={editUserStyle.label}>
|
||||||
<p>Email</p>
|
<p>Email</p>
|
||||||
{/* <p className={editUserStyle.optionalTxt}>(Optional)</p> */}
|
{/* <p className={editUserStyle.optionalTxt}>(Optional)</p> */}
|
||||||
@@ -98,7 +110,12 @@ const ViewUserPage = () => {
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{/* Permissions */}
|
{/* Permissions */}
|
||||||
<Permissions sampleData={sampleData} />
|
<div
|
||||||
|
className={`${editUserStyle.userPermissions} ${activeTab !== "permissions" ? editUserStyle.hiddenMobile : ""}`}
|
||||||
|
>
|
||||||
|
<div className={editUserStyle.imanginaryDiv}></div>
|
||||||
|
<Permissions sampleData={sampleData} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
.addUserContainer {
|
.editUserContainer {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 0px 144px 0 144px;
|
padding: 0px 144px 0 144px;
|
||||||
align-items: flex-start;
|
/* align-items: flex-start; */
|
||||||
gap: 24px;
|
gap: 24px;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
position: relative;
|
/* position: relative; */
|
||||||
}
|
}
|
||||||
.inputFieldContainer {
|
.inputFieldContainer {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -24,6 +24,22 @@
|
|||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
background: #1d1e2a;
|
background: #1d1e2a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 18px;
|
||||||
|
}
|
||||||
|
.userPermissions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex: 1 0 0;
|
||||||
|
align-self: stretch;
|
||||||
|
height: calc(100vh - 175px);
|
||||||
|
position: relative;
|
||||||
|
overflow-y: auto;
|
||||||
|
scrollbar-width: none;
|
||||||
|
padding-bottom: 60px;
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-bottom: 24px;
|
padding-bottom: 24px;
|
||||||
@@ -42,7 +58,6 @@
|
|||||||
.header > div > p {
|
.header > div > p {
|
||||||
width: 163px;
|
width: 163px;
|
||||||
color: #d2d3e1;
|
color: #d2d3e1;
|
||||||
color: color(display-p3 0.8235 0.8275 0.8784);
|
|
||||||
font-family: Inter;
|
font-family: Inter;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
@@ -113,6 +128,37 @@
|
|||||||
gap: 8px;
|
gap: 8px;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
}
|
}
|
||||||
.imanginaryDiv {
|
|
||||||
padding: 18px;
|
@media (max-width: 950px) {
|
||||||
|
.hiddenMobile {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.editUserContainer {
|
||||||
|
align-self: stretch;
|
||||||
|
padding: 0 16px;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0px;
|
||||||
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
.header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.userDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
margin-top: 32x;
|
||||||
|
}
|
||||||
|
|
||||||
|
.userPermissions {
|
||||||
|
height: calc(100vh - 295px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.userDetails {
|
||||||
|
background: none;
|
||||||
|
padding: 0px 0px 0px 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import Alert from "@/app/components/alerts/Alert";
|
|||||||
import Toggle from "@/app/components/mobileToggleTab/Toggle";
|
import Toggle from "@/app/components/mobileToggleTab/Toggle";
|
||||||
|
|
||||||
const AddUserPage = () => {
|
const AddUserPage = () => {
|
||||||
|
// Mobile
|
||||||
|
const [activeTab, setActiveTab] = useState("details");
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
@@ -20,9 +22,6 @@ const AddUserPage = () => {
|
|||||||
setTriggerAlert,
|
setTriggerAlert,
|
||||||
} = useUserForm();
|
} = useUserForm();
|
||||||
|
|
||||||
// Mobile
|
|
||||||
const [activeTab, setActiveTab] = useState("details");
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={globalStyle.section}>
|
<div className={globalStyle.section}>
|
||||||
{triggerAlert && (
|
{triggerAlert && (
|
||||||
@@ -69,7 +68,6 @@ const AddUserPage = () => {
|
|||||||
id="form"
|
id="form"
|
||||||
onSubmit={handleSubmit(onSubmit)}
|
onSubmit={handleSubmit(onSubmit)}
|
||||||
>
|
>
|
||||||
{/* Role and Dropdown */}
|
|
||||||
<div className={addUserStyle.roleField}>
|
<div className={addUserStyle.roleField}>
|
||||||
<p>Role</p>
|
<p>Role</p>
|
||||||
<SelectField
|
<SelectField
|
||||||
|
|||||||
@@ -33,11 +33,11 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
flex: 1 0 0;
|
flex: 1 0 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
border-radius: 6px;
|
|
||||||
height: calc(100vh - 175px);
|
height: calc(100vh - 175px);
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
|
padding-bottom: 60px;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -122,18 +122,22 @@
|
|||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 16px;
|
gap: 0px;
|
||||||
|
}
|
||||||
|
.imanginaryDiv {
|
||||||
|
padding: 5px;
|
||||||
}
|
}
|
||||||
.header {
|
.header {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.userDetails {
|
.userDetails {
|
||||||
background: none;
|
background: none;
|
||||||
padding: 0px 0px 0px 0px;
|
padding: 0px 0px 0px 0px;
|
||||||
margin-top: 16px;
|
margin-top: 32px;
|
||||||
}
|
}
|
||||||
.imanginaryDiv {
|
.userPermissions {
|
||||||
display: none;
|
height: calc(100vh - 295px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
|
|||||||
Reference in New Issue
Block a user