Pages
Eventos
[eventId].tsx

[eventId].tsx

En esta ruta lo que se hace es tomar el idEvent, este idEvent se va a tomar lo que sería el id que identifica al evento. Con esto se va a mandar a llamar al evento para obtener sus datos con el siguiente codigo:

export const getServerSideProps: GetServerSideProps = async (context) => {
  const eventId = context.params?.eventId;
  const { data: evento, error } = await supabase
    .from("events_users")
    .select("*, idEvent(*), idUser")
    .eq("idEvent", eventId);
  // console.log(evento);
 
  if (error) {
    throw new Error(error.message);
  }
  return {
    props: {
      evento,
    },
  };
};

En la función del componente lo que hace es checar el rol del usuario actual que esta logeado. Este se consigue de la siguiente manera:

function eventId({ evento }: any) {
...
  const user = useUser();
...
}

Esta constante se usa lo que sería en el retorno de la función del componente, el cual checa la propiedad de role del contexto del usuario.

{user.typeAccount === 'admin' || user.typeAccount === 'mod' ? (
    Va a mostrar botones ) : ( No va  mostrar nada) }

Pero tambien se coloca lo siguiente es que para ver las personas invitadas.

Esto el codigo es el siguiente:

{
  user.typeAccount === "admin" || user.typeAccount === "mod" ? (
    <Group
      sx={{
        marginTop: 15,
        display: "flex",
        justifyContent: "flex-end",
      }}
    >
      {evento[0].idEvent.asistencia ? (
        <Button
          onClick={() => {
            router.push(`/eventos/${eventId}/invitados`);
          }}
        >
          Ver personas invitadas
        </Button>
      ) : (
        <></>
      )}
      <Button
        onClick={() => router.push(`/eventos/${eventId}/edit`)}
        variant="outline"
      >
        Editar evento
      </Button>
      <Button
        //onClick={() => router.push(`/eventos/${eventId}/delete`)}
        variant="outline"
        color={"red"}
      >
        Eliminar evento
      </Button>
    </Group>
  ) : (
    <></>
  );
}
Last updated on December 15, 2022