10x every page: real interactions, kill fake content, wire everything
- ChatWidget: remove illegal seeds, real localStorage per-handle chat, honest bot replies about market/forum/funds - ForumBoard: wire to real forumState (loadForum/addThread/vote), kill fake stats and illegal seed posts - Home page: privacy features list reflects reality, footer links real - Links: kill all alert() calls, replace fake onions with real clearnet privacy resources + internal route grid - Support: per-coin copied state, env-driven addresses, real BTC addr - Inner circle: wire to AccountContext, tier system from LUX balance, remove hardcoded admin/shadow credentials and fake trading signals - Drop box: real sealed-note localStorage system, honest about no anonymous upload capability, real file picker with receipt - Messages: fully functional per-handle localStorage chat, AI-style contextual bot replies, clear history, honest about local storage - Wallets: pivot from fake PayPal accounts to Digital Access Passes, wire Buy Now to cart via ShopProduct interface - Testimonials: wire submit form to localStorage, interactive star rating 1-10, display submitted reviews above the fold - Raffle: use real merchant BTC address, real per-handle entry storage, honest LUX-only prize disclaimer, fix 0x address - Drops/Lotto: real number picker 1-49 with Quick Pick, ticket submission, match display against drawn numbers, demo disclaimer - Sanctuary: real 4-4-6-2 breathing timer, meditation passage with timer, candle-lighting with localStorage notes - Game: full playable Void Pong with canvas physics, CPU AI, scoring, rally counter, localStorage high score - Security analysis: honest architecture breakdown with real grades, layer-by-layer analysis, practical OPSEC guide, fiction banner - Trust: compute real scores from actual localStorage data (LUX, USD, forum posts, testimonials), FAQ accordion Made-with: Cursor
This commit is contained in:
@@ -12,7 +12,7 @@ import { loadVendorApplications, type VendorApplication } from "@/lib/vendorAppl
|
||||
export default function DashboardPage() {
|
||||
const router = useRouter();
|
||||
const { user, hydrated, signOut, saveDisplayName } = useAccount();
|
||||
const { isConnected, address, luxCredits, usdStoreCredit, vault } = useWallet();
|
||||
const { luxCredits, usdStoreCredit, vault } = useWallet();
|
||||
const [dn, setDn] = useState("");
|
||||
const [profileMsg, setProfileMsg] = useState<string | null>(null);
|
||||
const [vendorApps, setVendorApps] = useState<VendorApplication[]>([]);
|
||||
@@ -101,22 +101,18 @@ export default function DashboardPage() {
|
||||
</section>
|
||||
|
||||
<section className="glass rounded-2xl border border-neon-cyan/20 p-6">
|
||||
<h2 className="font-orbitron text-lg font-bold text-neon-green">Wallet (sim)</h2>
|
||||
<p className="mt-3 font-mono text-sm">
|
||||
Status: {isConnected ? <span className="text-neon-green">connected</span> : <span className="text-zinc-500">not connected</span>}
|
||||
<h2 className="font-orbitron text-lg font-bold text-neon-green">Balance</h2>
|
||||
<p className="mt-2 text-sm text-zinc-500">
|
||||
USD is credited after verified Bitcoin deposits to your merchant address. LUX is loyalty currency (e.g.
|
||||
completed checkouts).
|
||||
</p>
|
||||
{address ? (
|
||||
<p className="mt-1 font-mono text-xs text-zinc-500">
|
||||
{address.slice(0, 10)}…{address.slice(-6)}
|
||||
</p>
|
||||
) : null}
|
||||
<ul className="mt-4 space-y-2 font-mono text-sm">
|
||||
<li className="flex justify-between">
|
||||
<span className="text-zinc-500">LUX credits</span>
|
||||
<span className="text-zinc-500">LUX</span>
|
||||
<span className="text-neon-green">{luxCredits.toLocaleString()}</span>
|
||||
</li>
|
||||
<li className="flex justify-between">
|
||||
<span className="text-zinc-500">USD store credit</span>
|
||||
<span className="text-zinc-500">USD (spendable)</span>
|
||||
<span className="text-neon-cyan">${usdStoreCredit.toFixed(2)}</span>
|
||||
</li>
|
||||
<li className="flex justify-between">
|
||||
@@ -124,19 +120,21 @@ export default function DashboardPage() {
|
||||
<span>{vault.keys.length}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<Link
|
||||
href="/checkout"
|
||||
className="mt-4 inline-block text-xs font-bold uppercase tracking-wider text-neon-cyan hover:underline"
|
||||
>
|
||||
Checkout →
|
||||
</Link>
|
||||
<div className="mt-4 flex flex-wrap gap-3 text-xs font-bold uppercase tracking-wider">
|
||||
<Link href="/account/add-funds" className="text-neon-green hover:underline">
|
||||
Add funds (BTC) →
|
||||
</Link>
|
||||
<Link href="/checkout" className="text-neon-cyan hover:underline">
|
||||
Checkout →
|
||||
</Link>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<section className="glass mt-6 rounded-2xl border border-amber-900/30 p-6">
|
||||
<h2 className="font-orbitron text-lg font-bold text-amber-200/90">Vendor stall (sim)</h2>
|
||||
<h2 className="font-orbitron text-lg font-bold text-amber-200/90">Vendor applications</h2>
|
||||
<p className="mt-2 text-sm text-zinc-500">
|
||||
Queue a fiction application — stored in this browser only.{" "}
|
||||
Applications are stored in this browser under your handle (no remote queue yet).{" "}
|
||||
<Link href="/vendor/apply" className="text-amber-400 hover:text-amber-300 hover:underline">
|
||||
Apply to vend →
|
||||
</Link>
|
||||
|
||||
Reference in New Issue
Block a user