File size: 6,850 Bytes
c35213b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5fb7488
 
 
 
 
 
c35213b
5fb7488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c35213b
5fb7488
 
 
 
 
 
 
c35213b
 
 
 
 
 
 
 
 
 
5fb7488
 
 
 
 
 
 
c35213b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
import Link from 'next/link';
import { getWebDropsByCategory, checkVipStatus } from '@/lib/db';
import FadeIn from '@/components/FadeIn';
import AnimatedRow from '@/components/AnimatedRow';
import { getServerSession } from "next-auth/next";
import { authOptions } from "@/app/api/auth/[...nextauth]/route";

export default async function Scripts() {
  const drops = await getWebDropsByCategory('scripts');
  const session = await getServerSession(authOptions);
  const discordId = session?.user ? (session.user as any).id : null;
  const isVip = discordId ? await checkVipStatus(discordId) : false;

  return (
    <main className="min-h-[100dvh] bg-transparent text-white selection:bg-white/20 selection:text-white font-sans p-4 md:p-6 lg:p-8 flex flex-col overflow-hidden">
      
      {/* Structural Brutalist Header */}
      <header className="flex flex-col md:flex-row justify-between items-start md:items-end mb-8 md:mb-12 border-b-2 border-white pb-6 gap-6 md:gap-0">
        <div>
          <h1 className="text-4xl md:text-6xl font-black tracking-tighter uppercase mb-2">
            Scripts
          </h1>
          <p className="font-mono text-xs md:text-sm tracking-widest text-zinc-400 uppercase">
            [ DIRECTORY . 003 ]
          </p>
        </div>
        
        <div className="text-left md:text-right">
          <p className="font-mono text-[10px] md:text-xs tracking-[0.3em] text-white">
            WYVERN SOFTWORKS <span className="text-zinc-600">Β© 2026</span>
          </p>
          <p className="font-mono text-[10px] tracking-widest text-zinc-500 mt-1">
            TOTAL INDEXED: {drops.length}
          </p>
        </div>
      </header>

      <div className="flex flex-col md:flex-row gap-8 flex-1 min-h-0">
        
        {/* Module Sidebar */}
        <nav className="w-full md:w-56 lg:w-72 flex-shrink-0 border-b md:border-b-0 md:border-r border-white/10 pr-0 md:pr-10 pb-8 md:pb-0 flex flex-col gap-0 overflow-hidden">
          
          <div className="mb-10 hidden md:block">
            <Link href="/" className="font-mono text-[9px] tracking-[0.4em] text-zinc-500 hover:text-white transition-all uppercase flex items-center gap-2 group">
              <span className="w-4 h-[1px] bg-zinc-800 group-hover:w-8 group-hover:bg-white transition-all" />
              RETURN TO BASE
            </Link>
          </div>

          <div className="mb-6 flex flex-col gap-1">
            <span className="font-mono text-[10px] tracking-[0.3em] text-zinc-600 uppercase">SYSTEM</span>
            <span className="font-black text-xs tracking-tighter uppercase text-white">MODULES</span>
          </div>

          <div className="flex flex-row md:flex-col gap-2 md:gap-0 overflow-x-auto md:overflow-visible no-scrollbar">
            {[
              { id: 'sources', label: 'Sources', active: false, index: '01' },
              { id: 'cracks', label: 'Cracks', active: false, index: '02' },
              { id: 'scripts', label: 'Scripts', active: true, index: '03' },
              { id: 'tools', label: 'Tools', active: false, index: '04' },
            ].map((mod) => (
              <Link 
                key={mod.id} 
                href={`/${mod.id}`}
                className={`group relative flex items-center justify-between py-3 md:py-4 border-b border-white/5 transition-all ${
                  mod.active ? 'px-4 bg-white text-black' : 'px-0 text-zinc-500 hover:text-white hover:pl-4'
                }`}
              >
                <div className="flex items-center gap-4">
                  <span className={`font-mono text-[9px] ${mod.active ? 'text-black/50' : 'text-zinc-800 group-hover:text-zinc-400'}`}>
                    {mod.index}
                  </span>
                  <span className="font-black text-[11px] tracking-widest uppercase italic">
                    {mod.label}
                  </span>
                </div>
                {mod.active && (
                  <div className="w-1.5 h-1.5 bg-black rounded-full shadow-[0_0_8px_rgba(0,0,0,0.5)]" />
                )}
                {!mod.active && (
                  <span className="opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[10px]">β†’</span>
                )}
              </Link>
            ))}
          </div>
          
          <div className="mt-auto pt-12 hidden md:block">
            <Link href="/vip" className="relative group block overflow-hidden">
              <div className="absolute inset-0 bg-white translate-y-[101%] group-hover:translate-y-0 transition-transform duration-300" />
              <div className="border border-white/20 px-6 py-4 flex flex-col gap-1 relative transition-colors group-hover:text-black">
                <span className="font-mono text-[8px] tracking-[.3em] text-zinc-500 group-hover:text-black/50 uppercase transition-colors">Access Level</span>
                <span className="font-black text-xs tracking-[.2em] uppercase">Request VIP</span>
              </div>
            </Link>
          </div>
        </nav>

        {/* Main Content Area */}
        <div className="flex-1 border border-zinc-800 bg-zinc-950/50 flex flex-col min-h-[500px] md:min-h-0 relative overflow-hidden backdrop-blur-sm">
          <FadeIn>
          {/* Top Edge Decoration Removed */}

          {/* Ledger Table Header (Desktop) */}
          <div className="hidden md:grid grid-cols-12 gap-4 px-8 py-5 border-b border-zinc-900 font-mono text-[8px] tracking-[0.3em] text-zinc-600 uppercase bg-black/40">
            <div className="col-span-2">TIMESTAMP</div>
            <div className="col-span-1">REF</div>
            <div className="col-span-4">IDENTIFIER</div>
            <div className="col-span-2">LATENCY / AVAIL</div>
            <div className="col-span-2">ENCRYPTION / STATUS</div>
            <div className="col-span-1 text-right">ACTION</div>
          </div>

          {/* Ledger Content */}
          <div className="flex-1 overflow-y-auto w-full">
            {drops.length === 0 ? (
              <div className="flex-1 overflow-y-auto flex items-center justify-center p-8 h-full">
                <div className="font-mono text-[10px] tracking-[0.2em] text-zinc-600 uppercase text-center border border-zinc-800 border-dashed p-8 w-full max-w-sm">
                  [ DIRECTORY EMPTY ]
                </div>
              </div>
            ) : (
              drops.map((drop, i) => (
                <AnimatedRow key={drop.id} drop={drop} index={i} prefix="SCR" isVip={isVip} />
              ))
            )}
          </div>
          </FadeIn>
        </div>
      </div>

      <footer className="mt-8 pt-6 border-t border-zinc-900 flex justify-start items-center text-[9px] font-mono tracking-[0.2em] text-zinc-600 uppercase">
        <p>A Project by APRK</p>
      </footer>

    </main>
  );
}