2026-04-18 18:25:10 +05:00
|
|
|
|
import { createSignal, onMount } from "solid-js";
|
|
|
|
|
|
|
|
|
|
|
|
export default function CommentLock() {
|
2026-04-18 20:55:07 +05:00
|
|
|
|
const [currentPath, setCurrentPath] = createSignal("/auth/sign-in");
|
2026-04-18 18:25:10 +05:00
|
|
|
|
|
2026-04-26 18:09:40 +05:00
|
|
|
|
const commentsSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg>`;
|
|
|
|
|
|
|
2026-04-18 18:25:10 +05:00
|
|
|
|
onMount(() => {
|
|
|
|
|
|
const path = window.location.pathname;
|
2026-04-18 21:07:30 +05:00
|
|
|
|
const hash = window.location.hash;
|
|
|
|
|
|
const redirectTo = hash ? `${path}${hash}` : path;
|
|
|
|
|
|
setCurrentPath(`/auth/sign-in?redirect=${encodeURIComponent(redirectTo)}`);
|
2026-04-18 18:25:10 +05:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<>
|
|
|
|
|
|
<div class="max-w-4xl mx-auto mt-12 pt-8 border-t border-gray-200">
|
|
|
|
|
|
<div class="flex items-center justify-center gap-3 mb-8">
|
|
|
|
|
|
<span class="comment-icon" innerHTML={commentsSvg} />
|
|
|
|
|
|
<h3 class="text-2xl font-bold text-gray-900">Комментарии</h3>
|
|
|
|
|
|
<span class="px-3 py-1 bg-blue-100 text-blue-700 text-sm font-medium rounded-full">
|
|
|
|
|
|
0
|
|
|
|
|
|
</span>
|
|
|
|
|
|
</div>
|
2026-04-18 18:25:10 +05:00
|
|
|
|
|
2026-04-18 20:55:07 +05:00
|
|
|
|
<div
|
2026-04-26 18:09:40 +05:00
|
|
|
|
class="bg-linear-to-br from-gray-50 to-gray-100 rounded-2xl p-8 border border-gray-200 text-center"
|
|
|
|
|
|
style="background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);"
|
2026-04-18 20:55:07 +05:00
|
|
|
|
>
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<div
|
|
|
|
|
|
class="w-16 h-16 mx-auto mb-5 rounded-full flex items-center justify-center"
|
|
|
|
|
|
style="background: linear-gradient(135deg, rgba(37, 99, 235, 0.2) 0%, rgba(30, 64, 175, 0.3) 100%);"
|
|
|
|
|
|
>
|
|
|
|
|
|
<svg class="w-8 h-8 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
|
|
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/>
|
|
|
|
|
|
</svg>
|
|
|
|
|
|
</div>
|
2026-04-18 18:25:10 +05:00
|
|
|
|
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<h4 class="text-lg font-semibold text-gray-900 mb-3">
|
|
|
|
|
|
Нужна авторизация для комментариев
|
|
|
|
|
|
</h4>
|
2026-04-18 18:25:10 +05:00
|
|
|
|
<a
|
2026-04-26 18:09:40 +05:00
|
|
|
|
href={currentPath()}
|
|
|
|
|
|
class="inline-flex items-center justify-center font-semibold transition-all duration-300 rounded-md cursor-pointer px-5 py-2.5 text-base"
|
|
|
|
|
|
style="background: linear-gradient(to bottom, #2563eb, #1e40af); color: white; box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);"
|
2026-04-18 18:25:10 +05:00
|
|
|
|
>
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<svg class="w-4 h-4 mr-1.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
|
|
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"/>
|
|
|
|
|
|
</svg>
|
|
|
|
|
|
Войти в аккаунт
|
2026-04-18 18:25:10 +05:00
|
|
|
|
</a>
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<p class="mt-3 text-sm text-gray-600">
|
|
|
|
|
|
Нет аккаунта?{" "}
|
|
|
|
|
|
<a
|
|
|
|
|
|
href={`/auth/sign-up?redirect=${encodeURIComponent(window.location.pathname)}`}
|
|
|
|
|
|
class="font-medium hover:underline"
|
|
|
|
|
|
style="color: #2563eb;"
|
|
|
|
|
|
>
|
|
|
|
|
|
Зарегистрироваться
|
|
|
|
|
|
</a>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</div>
|
2026-04-18 18:25:10 +05:00
|
|
|
|
</div>
|
2026-04-26 18:09:40 +05:00
|
|
|
|
<style>{`
|
|
|
|
|
|
.comment-icon {
|
|
|
|
|
|
width: 1.75rem;
|
|
|
|
|
|
height: 1.75rem;
|
|
|
|
|
|
color: #2563eb;
|
|
|
|
|
|
}
|
|
|
|
|
|
.comment-icon svg {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
|
|
|
.max-w-4xl { max-width: 100% !important; }
|
|
|
|
|
|
.max-w-4xl .text-2xl { font-size: 1.25rem !important; }
|
|
|
|
|
|
.max-w-4xl .bg-blue-100 { padding: 0.25rem 0.5rem; font-size: 0.7rem; }
|
|
|
|
|
|
.max-w-4xl .rounded-2xl { padding: 1.5rem 1rem !important; margin-left: 0.5rem; margin-right: 0.5rem; }
|
|
|
|
|
|
.max-w-4xl .w-16 { width: 2.5rem !important; height: 2.5rem !important; }
|
|
|
|
|
|
.max-w-4xl .w-8 { width: 1.25rem !important; height: 1.25rem !important; }
|
|
|
|
|
|
.max-w-4xl .text-lg { font-size: 0.95rem !important; margin-bottom: 0.5rem !important; }
|
|
|
|
|
|
.max-w-4xl .text-base { font-size: 0.85rem !important; padding: 0.5rem 1rem !important; }
|
|
|
|
|
|
.max-w-4xl .w-4 { width: 0.875rem !important; height: 0.875rem !important; }
|
|
|
|
|
|
.max-w-4xl .text-sm { font-size: 0.75rem !important; }
|
|
|
|
|
|
.max-w-4xl .mt-3 { margin-top: 0.75rem !important; }
|
|
|
|
|
|
.max-w-4xl .mb-5 { margin-bottom: 1rem !important; }
|
|
|
|
|
|
.max-w-4xl .mb-8 { margin-bottom: 1.5rem !important; padding-top: 1.5rem !important; }
|
|
|
|
|
|
.max-w-4xl .pt-8 { padding-top: 2rem !important; }
|
|
|
|
|
|
.comment-icon { width: 1.25rem !important; height: 1.25rem !important; }
|
|
|
|
|
|
}
|
|
|
|
|
|
`}</style>
|
|
|
|
|
|
</>
|
2026-04-18 18:25:10 +05:00
|
|
|
|
);
|
|
|
|
|
|
}
|