Commit 4ce8aec3 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fix: disable browser cache for index.html + premium login/register UI

Nginx now serves index.html with no-cache headers so every deploy is
immediately visible. Login/Register pages get floating card treatment
with visible gutters, gold borders, and centered buttons.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 608dd2b0
...@@ -6,6 +6,9 @@ server { ...@@ -6,6 +6,9 @@ server {
location / { location / {
try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html;
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires "0";
} }
location /assets { location /assets {
......
import { chromium } from 'playwright'
import { mkdirSync } from 'fs'
async function main() {
mkdirSync('screenshots', { recursive: true })
const browser = await chromium.launch()
const context = await browser.newContext({
viewport: { width: 390, height: 844 },
deviceScaleFactor: 2,
locale: 'ar',
})
const page = await context.newPage()
await page.goto('https://el3ab-player.caprover.al-arcade.com/login', { waitUntil: 'networkidle', timeout: 15000 })
await page.waitForTimeout(2000)
await page.screenshot({ path: 'screenshots/login.png' })
console.log('captured login')
await browser.close()
}
main()
...@@ -32,7 +32,7 @@ export function LoginPage() { ...@@ -32,7 +32,7 @@ export function LoginPage() {
} }
return ( return (
<div className="min-h-dvh flex flex-col items-center justify-center px-6 relative overflow-hidden"> <div className="min-h-dvh flex flex-col items-center justify-center px-7 relative overflow-hidden">
<motion.div <motion.div
className="absolute inset-0 opacity-30" className="absolute inset-0 opacity-30"
style={{ style={{
...@@ -49,7 +49,7 @@ export function LoginPage() { ...@@ -49,7 +49,7 @@ export function LoginPage() {
/> />
<motion.div <motion.div
className="relative w-full max-w-sm" className="relative w-full max-w-[310px]"
initial={{ opacity: 0, y: 30 }} initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }} animate={{ opacity: 1, y: 0 }}
transition={{ type: 'spring', stiffness: 300, damping: 25 }} transition={{ type: 'spring', stiffness: 300, damping: 25 }}
...@@ -60,7 +60,7 @@ export function LoginPage() { ...@@ -60,7 +60,7 @@ export function LoginPage() {
<p className="mt-1 text-text-secondary">تسجيل الدخول</p> <p className="mt-1 text-text-secondary">تسجيل الدخول</p>
</div> </div>
<form onSubmit={handleLogin} className="flex flex-col gap-4 p-6 rounded-2xl bg-surface-1/60 backdrop-blur-xl border border-border-gold"> <form onSubmit={handleLogin} className="flex flex-col gap-4 p-7 rounded-2xl bg-surface-3 border-2 border-gold/30 shadow-[0_8px_40px_rgba(0,0,0,0.6),0_0_20px_rgba(212,168,67,0.08)]">
<Input <Input
label="البريد الالكتروني" label="البريد الالكتروني"
type="email" type="email"
...@@ -86,7 +86,7 @@ export function LoginPage() { ...@@ -86,7 +86,7 @@ export function LoginPage() {
</motion.p> </motion.p>
)} )}
<Button type="submit" loading={loading} className="w-full mt-2"> <Button type="submit" loading={loading} className="w-[85%] mx-auto mt-2">
دخول دخول
</Button> </Button>
</form> </form>
......
...@@ -50,7 +50,7 @@ export function RegisterPage() { ...@@ -50,7 +50,7 @@ export function RegisterPage() {
} }
return ( return (
<div className="min-h-dvh flex flex-col items-center justify-center px-6 relative overflow-hidden"> <div className="min-h-dvh flex flex-col items-center justify-center px-7 relative overflow-hidden">
<motion.div <motion.div
className="absolute inset-0 opacity-30" className="absolute inset-0 opacity-30"
style={{ style={{
...@@ -59,7 +59,7 @@ export function RegisterPage() { ...@@ -59,7 +59,7 @@ export function RegisterPage() {
/> />
<motion.div <motion.div
className="relative w-full max-w-sm" className="relative w-full max-w-[310px]"
initial={{ opacity: 0, y: 30 }} initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }} animate={{ opacity: 1, y: 0 }}
transition={{ type: 'spring', stiffness: 300, damping: 25 }} transition={{ type: 'spring', stiffness: 300, damping: 25 }}
...@@ -70,7 +70,7 @@ export function RegisterPage() { ...@@ -70,7 +70,7 @@ export function RegisterPage() {
<p className="mt-1 text-sm text-text-secondary">انضم الى مجتمع EL3AB</p> <p className="mt-1 text-sm text-text-secondary">انضم الى مجتمع EL3AB</p>
</div> </div>
<form onSubmit={handleRegister} className="flex flex-col gap-3.5 p-6 rounded-2xl bg-surface-1/60 backdrop-blur-xl border border-border-gold"> <form onSubmit={handleRegister} className="flex flex-col gap-3.5 p-7 rounded-2xl bg-surface-3 border-2 border-gold/30 shadow-[0_8px_40px_rgba(0,0,0,0.6),0_0_20px_rgba(212,168,67,0.08)]">
<Input <Input
label="اسم المستخدم" label="اسم المستخدم"
value={username} value={username}
...@@ -108,7 +108,7 @@ export function RegisterPage() { ...@@ -108,7 +108,7 @@ export function RegisterPage() {
</motion.p> </motion.p>
)} )}
<Button type="submit" loading={loading} className="w-full mt-2"> <Button type="submit" loading={loading} className="w-[85%] mx-auto mt-2">
انشاء حساب انشاء حساب
</Button> </Button>
</form> </form>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment