Link copied!
The Path of The Witcher in Krakow
1
The Ancient Tower: Find the old tower, your Witcher moment awaits.
Location: Senatorska tower
{ 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: 1, 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
Castle Gates: Through these gates our Witcher walked. Capture your entry, as in the game.
Location: Wawel castle entrance
{ 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: 2, 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
The Dragon’s Choice: Seek Kraków’s dragon. There are many all around the city and souvenirs shops, clam your new dragon with a photo.
Location: any souvenir shop near/around the castle or SMOCZA JAMA for the big one
{ 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: 3, 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
The Witcher’s Tavern: Mix your potion. Show your brew in a video. Which one will you make?
Location: Tawerna Wilczy Dół
{ 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: 4, 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
The Bunny Cafe: Witcher has many animals and creatures around him; why not finding a new animal friend at the bunny cafe.
{
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: 5,
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);
}
}"
>