Skip to content

Commit

Permalink
fix: menu alterar horario somente aprovado
Browse files Browse the repository at this point in the history
  • Loading branch information
ialexanderbrito committed Apr 20, 2022
1 parent 7234f6a commit 3ebaa34
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 38 deletions.
4 changes: 2 additions & 2 deletions src/components/DropdownMenu/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { useDropdown } from 'hooks/useDropdown';
import styles from './DropdownMenu.module.scss';

export function DropdownMenu() {
const { user, isAlexander, isBarbeiro } = useAuth();
const { user, isAlexander, isBarbeiro, isBarbeiroAprroved } = useAuth();
const { activeMenu, dropdownRef, calcHeight, menuHeight, photo } = useDropdown();

return (
Expand Down Expand Up @@ -40,7 +40,7 @@ export function DropdownMenu() {
</DropdownItem>

{isAlexander && <DropdownItem link="/admin">Painel Admin</DropdownItem>}
{isBarbeiro && <DropdownItem link="/horarios">Atualizar horários</DropdownItem>}
{isBarbeiro && isBarbeiroAprroved && <DropdownItem link="/horarios">Atualizar horários</DropdownItem>}

<DropdownItem logout>Sair</DropdownItem>
</div>
Expand Down
35 changes: 35 additions & 0 deletions src/contexts/Auth.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { useFormik } from 'formik';
import { AuthContextProps } from 'types/IContext';
import { loginSchema } from 'validations/Login';

import { getBarbeiro } from 'services/get/barbeiros';
import { getPhoto } from 'services/get/photo';
import { getUser } from 'services/get/user';
import { signIn } from 'services/post/signIn';
Expand All @@ -19,6 +20,7 @@ export function AuthProvider({ children }: any) {
const [user, setUser] = useState<any>();
const [ocupacao, setOcupacao] = useState('cliente');
const [loading, setLoading] = useState(false);
const [approved, setApproved] = useState('');

function isSigned() {
const storagedUser = localStorage.getItem('supabase.auth.token');
Expand Down Expand Up @@ -54,6 +56,14 @@ export function AuthProvider({ children }: any) {
return false;
}

function isBarbeiroAprroved() {
if (approved === 'S') {
return true;
}

return false;
}

async function checkUser() {
const hash = window.location.href.split('#')[0];
const params = hash.split('/')[3];
Expand Down Expand Up @@ -106,6 +116,26 @@ export function AuthProvider({ children }: any) {
}
}

async function verificarStatusBarbeiro() {
const { data, status, error } = await getBarbeiro(user?.id || '', true);

if (error) {
switch (status) {
default:
return;
}
}

if (!data) return;
if (!data[0].j) return;

if (data[0].j === null) {
return;
}

setApproved(data[0].j[0].admin_confirmed);
}

useEffect(() => {
checkUser();

Expand All @@ -114,6 +144,10 @@ export function AuthProvider({ children }: any) {
});
}, []);

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

const formikLogin = useFormik({
initialValues: {
email: '',
Expand Down Expand Up @@ -205,6 +239,7 @@ export function AuthProvider({ children }: any) {
isBarbeiro: isBarbeiro(),
isCliente: isCliente(),
isAlexander: isAlexander(),
isBarbeiroAprroved: isBarbeiroAprroved(),
}}
>
{children}
Expand Down
31 changes: 0 additions & 31 deletions src/hooks/useBarbeiro.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,44 +4,14 @@ import { format } from 'date-fns';

import { useUser } from 'contexts/User';

import { getBarbeiro } from 'services/get/barbeiros';

import { useAuth } from './useAuth';

const THIRTYMINUTES = 30 * 60 * 1000;

export function useBarbeiro() {
const { user } = useAuth();
const { getFirstCliente, buscaClientesHorario, buscarClientes } = useUser();
const [visible, setVisible] = useState(true);
const [modalIsOpen, setIsOpen] = useState(false);
const [date, setDate] = useState(new Date());
const [ultimaAtualizacao, setUltimaAtualizacao] = useState(format(new Date(), 'HH:mm:ss'));
const [approved, setApproved] = useState('');

async function verificarStatusBarbeiro() {
const { data, status, error } = await getBarbeiro(user?.id || '');

if (error) {
switch (status) {
default:
return;
}
}

if (!data) return;
if (!data[0].j) return;

if (data[0].j === null) {
return;
}

setApproved(data[0].j[0].admin_confirmed);
}

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

function tick() {
setDate(new Date());
Expand Down Expand Up @@ -118,6 +88,5 @@ export function useBarbeiro() {
customStyles,
date,
ultimaAtualizacao,
approved,
};
}
7 changes: 4 additions & 3 deletions src/pages/Barbeiro/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,14 @@ import { getDiaSemana } from 'utils/diaDaSemana';

import { useUser } from 'contexts/User';

import { useAuth } from 'hooks/useAuth';
import { useBarbeiro } from 'hooks/useBarbeiro';

import styles from './Barbeiro.module.scss';

export function Barbeiro() {
const navigate = useNavigate();
const { isBarbeiroAprroved } = useAuth();
const {
clientes,
selectDay,
Expand All @@ -31,14 +33,13 @@ export function Barbeiro() {
getFirstCliente,
verificaHorarioDeTrabalho,
} = useUser();

const { visible, setVisible, modalIsOpen, openModal, closeModal, customStyles, date, ultimaAtualizacao, approved } =
const { visible, setVisible, modalIsOpen, openModal, closeModal, customStyles, date, ultimaAtualizacao } =
useBarbeiro();

return (
<>
<div className={styles.containerBarbeiro}>
{approved === 'N' ? (
{isBarbeiroAprroved === false ? (
<div className={styles.containerAviso}>
<h2 className={styles.titleHome}>
Você ainda não foi aprovado para trabalhar como barbeiro.
Expand Down
4 changes: 2 additions & 2 deletions src/services/get/barbeiros.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export async function getBarbeiros() {
return { data, error, status };
}

export async function getBarbeiro(id: string) {
export async function getBarbeiro(id: string, confirmation: boolean = false) {
const { data, error, status } = await supabase.rpc('busca_filtrada_usuarios', {
p_id: id,
p_name: '',
Expand All @@ -32,7 +32,7 @@ export async function getBarbeiro(id: string) {
p_limit: 10,
p_orderby: 'name',
p_ascordsc: 'asc',
p_admin_confirmed: false,
p_admin_confirmed: confirmation,
});

return { data, error, status };
Expand Down
1 change: 1 addition & 0 deletions src/types/IContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ export interface AuthContextProps {
isBarbeiro: boolean;
isCliente: boolean;
isAlexander: boolean;
isBarbeiroAprroved: boolean;
}

export interface FormikProps {
Expand Down

0 comments on commit 3ebaa34

Please sign in to comment.