Pages
Eventos
Eventid Folder
invitados.tsx

invitados.mdx

En esta ruta lo que se se ve son una tabla con los invitados al evento.

Estos se obtienen de la siguiente manera:

export const getServerSideProps: GetServerSideProps = withPageAuth({
  redirectTo: "/login",
  async getServerSideProps(context) {
    // Access the user object
    // Por alguna razon con el supabase de utils no nos da el id del usuario
    const supabase = createServerSupabaseClient(context);
    const {
      data: { session },
    } = await supabase.auth.getSession();
    // Get the user from the database
    const { eventId } = context.query;
    const user = await supabase
      .from("users")
      .select("*")
      .eq("id", session?.user?.id)
      .single();
 
    // Check if the user is an admin
    if (user.data?.role === "admin" || user.data?.role === "mod") {
      const eventId = context.params?.eventId;
      const { data, error } = await supabase
        .from("events")
        .select("*")
        .eq("id", eventId)
        .single();
      if (data.asistencia) {
        const alumnos = await getPersonas(data.addressedTo);
        return {
          props: {
            alumnos,
          },
        };
      }
      return {
        redirect: {
          destination: `/eventos/${eventId}`,
          permanent: false,
        },
      };
    } else {
      console.log("No es admin");
      return {
        redirect: {
          destination: "/",
          permanent: false,
        },
      };
    }
  },
  authRequired: true,
});

La tabla que se hace tiene la propiedad de que se pueda clickear una fila. Al hacer click a una fila se puede ir a la ruta con su codigo para colocar su asistencia del evento.

Last updated on December 15, 2022