feat: reveal image when unlock button is clicked
This commit is contained in:
parent
e6b140068b
commit
05a5b436d1
|
@ -8,8 +8,7 @@ function permissionButtonTemplate(onClickHandler: () => void) {
|
||||||
<div class="flex flex-col justify-center gap-4 overlay">
|
<div class="flex flex-col justify-center gap-4 overlay">
|
||||||
<button
|
<button
|
||||||
id="unlock-content-button"
|
id="unlock-content-button"
|
||||||
class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md"
|
class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md">
|
||||||
>
|
|
||||||
İçerik Kilitli
|
İçerik Kilitli
|
||||||
</button>
|
</button>
|
||||||
<div class="rounded-lg border bg-card text-card-foreground shadow-sm p-2">
|
<div class="rounded-lg border bg-card text-card-foreground shadow-sm p-2">
|
||||||
|
@ -19,8 +18,7 @@ function permissionButtonTemplate(onClickHandler: () => void) {
|
||||||
</p>
|
</p>
|
||||||
<button
|
<button
|
||||||
@click="${onClickHandler}"
|
@click="${onClickHandler}"
|
||||||
class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground h-9 rounded-md px-3 bg-green-700 hover:bg-green-600 text-md"
|
class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground h-9 rounded-md px-3 bg-green-700 hover:bg-green-600 text-md">
|
||||||
>
|
|
||||||
Konum İzni Ver
|
Konum İzni Ver
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,8 +32,7 @@ function permissionDeniedButtonTemplate() {
|
||||||
return html`<div class="flex flex-col justify-center gap-4 overlay">
|
return html`<div class="flex flex-col justify-center gap-4 overlay">
|
||||||
<button
|
<button
|
||||||
id="unlock-content-button"
|
id="unlock-content-button"
|
||||||
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md"
|
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md">
|
||||||
>
|
|
||||||
${lockSVG}
|
${lockSVG}
|
||||||
<p>İçerik Kilitli</p>
|
<p>İçerik Kilitli</p>
|
||||||
</button>
|
</button>
|
||||||
|
@ -55,8 +52,7 @@ function lockedButtonTemplate(proximityText: string | undefined) {
|
||||||
return html`<div class="flex flex-col justify-center gap-4 overlay">
|
return html`<div class="flex flex-col justify-center gap-4 overlay">
|
||||||
<button
|
<button
|
||||||
id="unlock-content-button"
|
id="unlock-content-button"
|
||||||
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md"
|
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md">
|
||||||
>
|
|
||||||
${lockSVG}
|
${lockSVG}
|
||||||
<p>İçerik Kilitli</p>
|
<p>İçerik Kilitli</p>
|
||||||
</button>
|
</button>
|
||||||
|
@ -78,8 +74,7 @@ function unlockedButtonTemplate(onClickHandler: () => void) {
|
||||||
<button
|
<button
|
||||||
@click="${onClickHandler}"
|
@click="${onClickHandler}"
|
||||||
id="unlock-content-button"
|
id="unlock-content-button"
|
||||||
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground h-11 rounded-md text-lg p-6 animate-pulse bg-indigo-600 hover:bg-indigo-700 hover:animate-none border-2 border-indigo-800"
|
class="inline-flex gap-2 items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 text-primary-foreground h-11 rounded-md text-lg p-6 animate-pulse bg-indigo-600 hover:bg-indigo-700 hover:animate-none border-2 border-indigo-800 transition-1000">
|
||||||
>
|
|
||||||
${unlockSVG}
|
${unlockSVG}
|
||||||
<p>İçeriğin Kilidi Açıldı</p>
|
<p>İçeriğin Kilidi Açıldı</p>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -82,12 +82,14 @@ const dateFromNow = dayjs.utc(data?.created_at).from(dayjs.utc());
|
||||||
<img
|
<img
|
||||||
id='content'
|
id='content'
|
||||||
src={`http://localhost:3000/images/${data?.blob_url}`}
|
src={`http://localhost:3000/images/${data?.blob_url}`}
|
||||||
class='h-[450px] blur-2xl'
|
class='h-[450px] blur-2xl transition-all duration-1000'
|
||||||
/>
|
/>
|
||||||
<div class='flex flex-col justify-center gap-4 overlay'>
|
<div
|
||||||
|
id='unlock-button-container'
|
||||||
|
class='flex flex-col justify-center gap-4 overlay'>
|
||||||
<button
|
<button
|
||||||
id='unlock-content-button'
|
id='unlock-content-button'
|
||||||
class='inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md'>
|
class='transition-[background-color] duration-1000 inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md text-lg p-6 text-md'>
|
||||||
<svg
|
<svg
|
||||||
id='lock-icon'
|
id='lock-icon'
|
||||||
xmlns='http://www.w3.org/2000/svg'
|
xmlns='http://www.w3.org/2000/svg'
|
||||||
|
|
|
@ -45,24 +45,35 @@ function updateCurrentLocation(position: GeolocationPosition) {
|
||||||
const unlockIcon = document.getElementById("unlock-icon");
|
const unlockIcon = document.getElementById("unlock-icon");
|
||||||
const lockIcon = document.getElementById("lock-icon");
|
const lockIcon = document.getElementById("lock-icon");
|
||||||
const buttonText = document.getElementById("button-text");
|
const buttonText = document.getElementById("button-text");
|
||||||
|
const description = document.getElementById("locked-content-description");
|
||||||
|
|
||||||
if (unlockButton) {
|
if (unlockButton) {
|
||||||
if (buttonText) buttonText.innerText = "İçeriği Göster";
|
if (buttonText) buttonText.innerText = "İçeriği Göster";
|
||||||
if (lockIcon) lockIcon.classList.add("hidden");
|
if (lockIcon) lockIcon.classList.add("hidden");
|
||||||
if (unlockIcon) unlockIcon.classList.remove("hidden");
|
if (unlockIcon) unlockIcon.classList.remove("hidden");
|
||||||
|
if (description)
|
||||||
|
description.innerText = "İçeriği görmek için butona bas!";
|
||||||
unlockButton.classList.remove("bg-primary", "hover:bg-primary/90");
|
unlockButton.classList.remove("bg-primary", "hover:bg-primary/90");
|
||||||
unlockButton.classList.add(
|
unlockButton.classList.add(
|
||||||
"transition-[background-color]",
|
|
||||||
"duration-1000"
|
|
||||||
);
|
|
||||||
unlockButton.classList.add(
|
|
||||||
"animate-pulse",
|
|
||||||
"bg-indigo-600",
|
"bg-indigo-600",
|
||||||
"hover:bg-indigo-700",
|
"hover:bg-indigo-700",
|
||||||
"hover:animate-none",
|
"hover:animate-none",
|
||||||
"border-2",
|
"border-2",
|
||||||
"border-indigo-800"
|
"border-indigo-800"
|
||||||
);
|
);
|
||||||
|
setTimeout(() => {
|
||||||
|
unlockButton.classList.remove("duration-1000");
|
||||||
|
unlockButton.classList.add("animate-pulse");
|
||||||
|
}, 800);
|
||||||
|
|
||||||
|
unlockButton.addEventListener("click", () => {
|
||||||
|
const image = document.getElementById("content");
|
||||||
|
const unlockButtonContainer = document.getElementById(
|
||||||
|
"unlock-button-container"
|
||||||
|
);
|
||||||
|
if (image) image.classList.remove("blur-2xl");
|
||||||
|
if (unlockButtonContainer) unlockButtonContainer.remove();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const distanceText = generateDistanceText(distance);
|
const distanceText = generateDistanceText(distance);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user