feat: add company logo and configure Cloudflare tunnel support
- Add company logo to login page and all sidebar variants - Configure Next.js rewrites to proxy /api/* to backend - Enable external access via Cloudflare Zero Trust tunnel Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import { useState } from 'react';
|
||||
import { useRouter } from 'next/navigation';
|
||||
import Link from 'next/link';
|
||||
import Image from 'next/image';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { Label } from '@/components/ui/label';
|
||||
@@ -40,6 +41,16 @@ export default function LoginPage() {
|
||||
return (
|
||||
<Card>
|
||||
<CardHeader className="text-center">
|
||||
<div className="flex justify-center mb-4">
|
||||
<Image
|
||||
src="/logo.jpg"
|
||||
alt="Horux360"
|
||||
width={80}
|
||||
height={80}
|
||||
className="rounded-full"
|
||||
priority
|
||||
/>
|
||||
</div>
|
||||
<CardTitle className="text-2xl">Iniciar Sesión</CardTitle>
|
||||
<CardDescription>
|
||||
Ingresa tus credenciales para acceder a tu cuenta
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import Link from 'next/link';
|
||||
import Image from 'next/image';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { cn } from '@/lib/utils';
|
||||
import {
|
||||
@@ -69,9 +70,13 @@ export function SidebarCompact() {
|
||||
{/* Logo */}
|
||||
<div className="flex h-14 items-center border-b px-4">
|
||||
<Link href="/dashboard" className="flex items-center gap-2">
|
||||
<div className="h-8 w-8 rounded bg-primary flex items-center justify-center flex-shrink-0">
|
||||
<span className="text-primary-foreground font-bold text-lg">H</span>
|
||||
</div>
|
||||
<Image
|
||||
src="/logo.jpg"
|
||||
alt="Horux360"
|
||||
width={32}
|
||||
height={32}
|
||||
className="rounded-full flex-shrink-0"
|
||||
/>
|
||||
<span className={cn(
|
||||
'font-bold text-lg whitespace-nowrap transition-opacity duration-300',
|
||||
expanded ? 'opacity-100' : 'opacity-0 w-0 overflow-hidden'
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import Link from 'next/link';
|
||||
import Image from 'next/image';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { cn } from '@/lib/utils';
|
||||
import {
|
||||
@@ -59,9 +60,13 @@ export function SidebarFloating() {
|
||||
<div className="flex h-full flex-col p-4">
|
||||
{/* Logo */}
|
||||
<div className="flex items-center gap-3 mb-6 px-2">
|
||||
<div className="h-10 w-10 rounded-xl bg-gradient-to-br from-primary to-accent flex items-center justify-center shadow-lg shadow-primary/25">
|
||||
<span className="text-primary-foreground font-bold text-xl">H</span>
|
||||
</div>
|
||||
<Image
|
||||
src="/logo.jpg"
|
||||
alt="Horux360"
|
||||
width={40}
|
||||
height={40}
|
||||
className="rounded-full shadow-lg shadow-primary/25"
|
||||
/>
|
||||
<div>
|
||||
<span className="font-bold text-lg block">Horux360</span>
|
||||
<span className="text-xs text-muted-foreground">Análisis Fiscal</span>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import Link from 'next/link';
|
||||
import Image from 'next/image';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { cn } from '@/lib/utils';
|
||||
import {
|
||||
@@ -60,9 +61,13 @@ export function Sidebar() {
|
||||
{/* Logo */}
|
||||
<div className="flex h-16 items-center border-b px-6">
|
||||
<Link href="/dashboard" className="flex items-center gap-2">
|
||||
<div className="h-8 w-8 rounded-lg bg-primary flex items-center justify-center">
|
||||
<span className="text-primary-foreground font-bold text-lg">H</span>
|
||||
</div>
|
||||
<Image
|
||||
src="/logo.jpg"
|
||||
alt="Horux360"
|
||||
width={32}
|
||||
height={32}
|
||||
className="rounded-full"
|
||||
/>
|
||||
<span className="font-bold text-xl">Horux360</span>
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
transpilePackages: ['@horux/shared'],
|
||||
async rewrites() {
|
||||
return [
|
||||
{
|
||||
source: '/api/:path*',
|
||||
destination: 'http://localhost:4000/api/:path*',
|
||||
},
|
||||
{
|
||||
source: '/health',
|
||||
destination: 'http://localhost:4000/health',
|
||||
},
|
||||
];
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = nextConfig;
|
||||
|
||||
BIN
apps/web/public/logo.jpg
Normal file
BIN
apps/web/public/logo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Reference in New Issue
Block a user