edit.tsx
Esta ruta se encarga de editar el evento. En esta se pueden subir o editar las fotos.
Pero tambien otros aspectos generales del evento, como las siguientes:
- Nombre del evento.
- Descripción del evento.
- Día del evento.
- Hora de inicio del evento.
- Hora de fin del evento.
- Lugar del evento
- Fotos del evento.
Los eventos los puede editar cualquiera que tengan role de administrador o de moderador.
En esta ruta lo que se hace es un update sencillo. Que sería el siguiente:
async function deleteImage() {
let { error } = await supabase.storage
.from("fotografiaseventos")
.remove(["fotosEventos/gato.jpg"]);
console.log(error);
}
Pero para subir las imagenes al bucket, se tiene que hacer lo siguiente.
// With promises (async/await) upload multiple images to supabase storage and then return the publics urls of the images uploaded
async function uploadImages(files: FileWithPath[]) {
for (let i = 0; i < files.length; i++) {
const file = files[i];
await supabase.storage
.from("fotografiaseventos")
.upload(`fotosEventos/${file.name}`, file, {
cacheControl: "3600",
upsert: false,
});
}
}
Después de eso se obtienen las URLs para actualizar el evento.
// Obtener las URL de las imagenes subidas a supabase storage y retornarlas en un arreglo
async function getImagesUrl(files: FileWithPath[]) {
let urls: string[] = [];
for (let i = 0; i < files.length; i++) {
const file = files[i];
const {
data: { publicUrl },
} = supabase.storage
.from("fotografiaseventos")
.getPublicUrl(`fotosEventos/${file.name}`);
urls.push(publicUrl);
}
return urls;
}
En dado caso que se quieran eliminar fotos de los eventos. Se necesita eliminar del bucket, para eso se necesita la siguiente función.
async function deleteImages(images: string[]) {
for (let i = 0; i < images.length; i++) {
const image = images[i];
// Tenemos que sacar el nombre de la imagen para poder eliminarla con un regex
let nameImage = image.match(/fotosEventos\/(.*)/);
console.log(image);
console.log('asdfs', nameImage);
let { error } = await supabase.storage
.from('fotografiaseventos')
.remove([`fotosEventos/${nameImage![1]}`]);
console.log(error);
}
}
Last updated on December 15, 2022