Link copied!
Latvia Questival
1
Snap a photo that channels the spirit of the LÄÄplÄsis author, get creative!
{
const file = $refs.activityFile.files[0];
if (!file) {
console.error('No file selected.');
return;
}
if (file.type.startsWith('image/')) {
new Compressor(file, {
quality: 0.8,
maxWidth: 2000,
maxHeight: 2000,
retainExif: true,
mimeType: 'image/jpeg',
success(compressedFile) {
Alpine.store('uploader').uploadFile(compressedFile, $wire, $data);
},
error(err) {
console.error('Compression error:', err.message);
},
});
} else if (file.type.startsWith('video/')) {
const video = document.createElement('video');
video.preload = 'metadata';
video.src = URL.createObjectURL(file);
video.onloadedmetadata = () => {
URL.revokeObjectURL(video.src); // clean up
console.log(video.duration);
if (video.duration > 30) {
Alpine.store('videoUpload').file = file;
Alpine.store('videoUpload').previewUrl = URL.createObjectURL(file);
Alpine.store('uploader').componentId = $wire.__instance.id;
$dispatch('open-modal', {
modal: 'trim-activity-video',
params: {
activityId: 13,
fileName: file.name,
fileSize: file.size
},
fullscreen: true
});
$refs.activityFile.value = ''; // Resetting the activityFile input value since we anyway have it in the store. Reason being, so the user can select the same file again if they choose to close the modal.
} else {
Alpine.store('uploader').uploadFile(file, $wire, $data);
}
}
} else {
console.error('Unsupported file type:', file.type);
}
}"
>
2
Flow: Recreate a movie scene in a photo, pets as actors welcome!
{
const file = $refs.activityFile.files[0];
if (!file) {
console.error('No file selected.');
return;
}
if (file.type.startsWith('image/')) {
new Compressor(file, {
quality: 0.8,
maxWidth: 2000,
maxHeight: 2000,
retainExif: true,
mimeType: 'image/jpeg',
success(compressedFile) {
Alpine.store('uploader').uploadFile(compressedFile, $wire, $data);
},
error(err) {
console.error('Compression error:', err.message);
},
});
} else if (file.type.startsWith('video/')) {
const video = document.createElement('video');
video.preload = 'metadata';
video.src = URL.createObjectURL(file);
video.onloadedmetadata = () => {
URL.revokeObjectURL(video.src); // clean up
console.log(video.duration);
if (video.duration > 30) {
Alpine.store('videoUpload').file = file;
Alpine.store('videoUpload').previewUrl = URL.createObjectURL(file);
Alpine.store('uploader').componentId = $wire.__instance.id;
$dispatch('open-modal', {
modal: 'trim-activity-video',
params: {
activityId: 14,
fileName: file.name,
fileSize: file.size
},
fullscreen: true
});
$refs.activityFile.value = ''; // Resetting the activityFile input value since we anyway have it in the store. Reason being, so the user can select the same file again if they choose to close the modal.
} else {
Alpine.store('uploader').uploadFile(file, $wire, $data);
}
}
} else {
console.error('Unsupported file type:', file.type);
}
}"
>
3
Foodie time: Show off a Latvian dish like itās in an ad!
Draw inspiration from cinema posters and digital ads, have fun!
{ const file = $refs.activityFile.files[0]; if (!file) { console.error('No file selected.'); return; } if (file.type.startsWith('image/')) { new Compressor(file, { quality: 0.8, maxWidth: 2000, maxHeight: 2000, retainExif: true, mimeType: 'image/jpeg', success(compressedFile) { Alpine.store('uploader').uploadFile(compressedFile, $wire, $data); }, error(err) { console.error('Compression error:', err.message); }, }); } else if (file.type.startsWith('video/')) { const video = document.createElement('video'); video.preload = 'metadata'; video.src = URL.createObjectURL(file); video.onloadedmetadata = () => { URL.revokeObjectURL(video.src); // clean up console.log(video.duration); if (video.duration > 30) { Alpine.store('videoUpload').file = file; Alpine.store('videoUpload').previewUrl = URL.createObjectURL(file); Alpine.store('uploader').componentId = $wire.__instance.id; $dispatch('open-modal', { modal: 'trim-activity-video', params: { activityId: 15, fileName: file.name, fileSize: file.size }, fullscreen: true }); $refs.activityFile.value = ''; // Resetting the activityFile input value since we anyway have it in the store. Reason being, so the user can select the same file again if they choose to close the modal. } else { Alpine.store('uploader').uploadFile(file, $wire, $data); } } } else { console.error('Unsupported file type:', file.type); } }" >
4
Latvians speak many tongues, try chatting in another language!
Skip English!
{ const file = $refs.activityFile.files[0]; if (!file) { console.error('No file selected.'); return; } if (file.type.startsWith('image/')) { new Compressor(file, { quality: 0.8, maxWidth: 2000, maxHeight: 2000, retainExif: true, mimeType: 'image/jpeg', success(compressedFile) { Alpine.store('uploader').uploadFile(compressedFile, $wire, $data); }, error(err) { console.error('Compression error:', err.message); }, }); } else if (file.type.startsWith('video/')) { const video = document.createElement('video'); video.preload = 'metadata'; video.src = URL.createObjectURL(file); video.onloadedmetadata = () => { URL.revokeObjectURL(video.src); // clean up console.log(video.duration); if (video.duration > 30) { Alpine.store('videoUpload').file = file; Alpine.store('videoUpload').previewUrl = URL.createObjectURL(file); Alpine.store('uploader').componentId = $wire.__instance.id; $dispatch('open-modal', { modal: 'trim-activity-video', params: { activityId: 16, fileName: file.name, fileSize: file.size }, fullscreen: true }); $refs.activityFile.value = ''; // Resetting the activityFile input value since we anyway have it in the store. Reason being, so the user can select the same file again if they choose to close the modal. } else { Alpine.store('uploader').uploadFile(file, $wire, $data); } } } else { console.error('Unsupported file type:', file.type); } }" >
5
Sunset hunt: Capture Latviaās best sunset!
{
const file = $refs.activityFile.files[0];
if (!file) {
console.error('No file selected.');
return;
}
if (file.type.startsWith('image/')) {
new Compressor(file, {
quality: 0.8,
maxWidth: 2000,
maxHeight: 2000,
retainExif: true,
mimeType: 'image/jpeg',
success(compressedFile) {
Alpine.store('uploader').uploadFile(compressedFile, $wire, $data);
},
error(err) {
console.error('Compression error:', err.message);
},
});
} else if (file.type.startsWith('video/')) {
const video = document.createElement('video');
video.preload = 'metadata';
video.src = URL.createObjectURL(file);
video.onloadedmetadata = () => {
URL.revokeObjectURL(video.src); // clean up
console.log(video.duration);
if (video.duration > 30) {
Alpine.store('videoUpload').file = file;
Alpine.store('videoUpload').previewUrl = URL.createObjectURL(file);
Alpine.store('uploader').componentId = $wire.__instance.id;
$dispatch('open-modal', {
modal: 'trim-activity-video',
params: {
activityId: 17,
fileName: file.name,
fileSize: file.size
},
fullscreen: true
});
$refs.activityFile.value = ''; // Resetting the activityFile input value since we anyway have it in the store. Reason being, so the user can select the same file again if they choose to close the modal.
} else {
Alpine.store('uploader').uploadFile(file, $wire, $data);
}
}
} else {
console.error('Unsupported file type:', file.type);
}
}"
>