refactor: update branding from HarifSport to FortuneBets across the application

This commit is contained in:
brooktewabe 2026-03-02 19:28:32 +03:00
parent 1a1361ee7f
commit 7d994e253b
10 changed files with 33 additions and 33 deletions

View File

@ -128,7 +128,7 @@
} }
} }
/* HarifSport odds button animation */ /* FortuneBets odds button animation */
@keyframes odds-flash { @keyframes odds-flash {
0% { 0% {
background-color: oklch(0.55 0.18 145); background-color: oklch(0.55 0.18 145);

View File

@ -14,8 +14,8 @@ const geistMono = Geist_Mono({
}) })
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Harifsport - Sports Betting", title: "Fortune Bets - Sports Betting",
description: "Harifsport sportsbook - Live betting, in-play events, and more", description: "Fortune Bets sportsbook - Ethiopian online casiono, sports betting, in-play events, and more",
} }
export default function RootLayout({ export default function RootLayout({

View File

@ -41,15 +41,15 @@ export default function LoginPage() {
/> />
))} ))}
</div> </div>
{/* HARIF box */} {/* FORTUNE box */}
<div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]"> <div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]">
<span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none"> <span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none">
HARIF FORTUNE
</span> </span>
</div> </div>
{/* SPORT text */} {/* BETS text */}
<span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none"> <span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">
SPORT BETS
</span> </span>
</div> </div>
</div> </div>

View File

@ -43,15 +43,15 @@ export default function RegisterPage() {
/> />
))} ))}
</div> </div>
{/* HARIF box */} {/* FORTUNE box */}
<div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]"> <div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]">
<span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none"> <span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none">
HARIF FORTUNE
</span> </span>
</div> </div>
{/* SPORT text */} {/* BETS text */}
<span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none"> <span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">
SPORT BETS
</span> </span>
</div> </div>
</div> </div>

View File

@ -1,7 +1,7 @@
const rules = [ const rules = [
{ {
title: "General Betting Rules", title: "General Betting Rules",
content: "All bets are subject to Harifsport terms and conditions. By placing a bet, you agree to abide by these rules. The minimum bet amount is 5 ETB and the maximum payout is 500,000 ETB per bet.", content: "All bets are subject to Fortune's terms and conditions. By placing a bet, you agree to abide by these rules. The minimum bet amount is 5 ETB and the maximum payout is 500,000 ETB per bet.",
}, },
{ {
title: "Live Betting", title: "Live Betting",
@ -13,7 +13,7 @@ const rules = [
}, },
{ {
title: "Responsible Gambling", title: "Responsible Gambling",
content: "Harifsport is committed to responsible gambling. Users may set deposit limits, loss limits, or self-exclude at any time. Gambling should be entertaining, not a source of income.", content: "Fortune's is committed to responsible gambling. Users may set deposit limits, loss limits, or self-exclude at any time. Gambling should be entertaining, not a source of income.",
}, },
{ {
title: "Account Rules", title: "Account Rules",

View File

@ -9,7 +9,7 @@ export type GameCategory =
| "favourite" | "favourite"
| "recently-played" | "recently-played"
| "most-popular" | "most-popular"
| "harif-special" | "fortune-special"
| "for-you" | "for-you"
| "slots" | "slots"
| "crash-games" | "crash-games"
@ -30,7 +30,7 @@ const categories = [
{ id: "favourite", name: "Favourite", icon: Heart }, { id: "favourite", name: "Favourite", icon: Heart },
{ id: "recently-played", name: "Recently Played", icon: Clock }, { id: "recently-played", name: "Recently Played", icon: Clock },
{ id: "most-popular", name: "Most Popular", icon: Star }, { id: "most-popular", name: "Most Popular", icon: Star },
{ id: "harif-special", name: "Harif Special", icon: Zap }, { id: "fortune-special", name: "Fortune Special", icon: Star },
{ id: "for-you", name: "For You", icon: Star }, { id: "for-you", name: "For You", icon: Star },
{ id: "slots", name: "Slots", icon: Star }, { id: "slots", name: "Slots", icon: Star },
{ id: "crash-games", name: "Crash Games", icon: Star }, { id: "crash-games", name: "Crash Games", icon: Star },

View File

@ -14,15 +14,15 @@ function Logo() {
<div key={i} className="w-[5px] h-[38px] bg-[#cc2222] -skew-x-12" /> <div key={i} className="w-[5px] h-[38px] bg-[#cc2222] -skew-x-12" />
))} ))}
</div> </div>
{/* HARIF box */} {/* FORTUNE box */}
<div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]"> <div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[38px]">
<span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none"> <span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none">
HARIF FORTUNE
</span> </span>
</div> </div>
{/* SPORT text */} {/* BETS text */}
<span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none"> <span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">
SPORT BETS
</span> </span>
</div> </div>
) )

View File

@ -54,9 +54,9 @@ export function SiteFooter() {
<div className="flex flex-col items-center justify-center py-16 border-t border-white/5 mt-12 bg-brand-surface-light"> <div className="flex flex-col items-center justify-center py-16 border-t border-white/5 mt-12 bg-brand-surface-light">
<div className="flex items-center bg-brand-surface px-5 py-2"> <div className="flex items-center bg-brand-surface px-5 py-2">
<div className="bg-brand-accent px-3 py-1 -skew-x-12"> <div className="bg-brand-accent px-3 py-1 -skew-x-12">
<span className="text-3xl font-black text-white italic tracking-tighter skew-x-12 inline-block">HARIF</span> <span className="text-3xl font-black text-white italic tracking-tighter skew-x-12 inline-block">FORTUNE</span>
</div> </div>
<span className="text-3xl font-black text-brand-primary italic tracking-tighter ml-1">SPORT</span> <span className="text-3xl font-black text-brand-primary italic tracking-tighter ml-1">BETS</span>
</div> </div>
{/* Footer Links */} {/* Footer Links */}

View File

@ -9,7 +9,7 @@ import { Input } from "@/components/ui/input"
import Image from "next/image" import Image from "next/image"
const allNavItems = [ const allNavItems = [
{ href: "/", label: "ALL SPORTS" }, { href: "/", label: "ALL BETSS" },
{ href: "/live", label: "LIVE" }, { href: "/live", label: "LIVE" },
{ href: "/virtual", label: "VIRTUAL" }, { href: "/virtual", label: "VIRTUAL" },
{ href: "/special-games", label: "SPECIAL Games" }, { href: "/special-games", label: "SPECIAL Games" },
@ -21,7 +21,7 @@ const allNavItems = [
] ]
const drawerLinks = [ const drawerLinks = [
{ href: "/", label: "All Sports" }, { href: "/", label: "All BETSs" },
{ href: "/live", label: "Live Betting" }, { href: "/live", label: "Live Betting" },
{ href: "/virtual", label: "Virtual" }, { href: "/virtual", label: "Virtual" },
{ href: "/special-games", label: "Special Games" }, { href: "/special-games", label: "Special Games" },
@ -118,9 +118,9 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
<Link href="/" className="flex-1 flex items-center justify-center"> <Link href="/" className="flex-1 flex items-center justify-center">
<div className="flex items-center"> <div className="flex items-center">
<div className="bg-brand-accent px-2 py-0.5 -skew-x-12 flex items-center h-[28px]"> <div className="bg-brand-accent px-2 py-0.5 -skew-x-12 flex items-center h-[28px]">
<span className="text-xl font-black text-white italic tracking-tighter skew-x-12 leading-none">HARIF</span> <span className="text-xl font-black text-white italic tracking-tighter skew-x-12 leading-none">FORTUNE</span>
</div> </div>
<span className="text-xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">SPORT</span> <span className="text-xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">BETS</span>
</div> </div>
</Link> </Link>
@ -146,9 +146,9 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
<Link href="/" className="flex items-center shrink-0"> <Link href="/" className="flex items-center shrink-0">
<div className="flex items-center bg-brand-surface h-[60px] px-4 w-[280px] shrink-0 border-r border-white/5"> <div className="flex items-center bg-brand-surface h-[60px] px-4 w-[280px] shrink-0 border-r border-white/5">
<div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[34px]"> <div className="bg-brand-accent px-3 py-1 -skew-x-12 flex items-center h-[34px]">
<span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none">HARIF</span> <span className="text-2xl font-black text-white italic tracking-tighter skew-x-12 inline-block leading-none">FORTUNE</span>
</div> </div>
<span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">SPORT</span> <span className="text-2xl font-black text-brand-primary italic tracking-tighter ml-1 leading-none">BETS</span>
</div> </div>
</Link> </Link>
<div className="flex items-center flex-1 justify-end px-4 h-full gap-0 bg-brand-surface"> <div className="flex items-center flex-1 justify-end px-4 h-full gap-0 bg-brand-surface">
@ -232,7 +232,7 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
})} })}
</div> </div>
{/* ===== MOBILE: Sport Category Icons Row ===== */} {/* ===== MOBILE: BETS Category Icons Row ===== */}
<div className="flex md:hidden overflow-x-auto scrollbar-none bg-brand-surface-light border-t border-white/5 py-2 px-2 gap-4"> <div className="flex md:hidden overflow-x-auto scrollbar-none bg-brand-surface-light border-t border-white/5 py-2 px-2 gap-4">
{[ {[
{ label: "Check Bet", icon: (active: boolean) => <svg viewBox="0 0 24 24" className="size-5 fill-white/80"><path d="M20 4H4c-1.11 0-2 .89-2 2v12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></svg>, count: 99 }, { label: "Check Bet", icon: (active: boolean) => <svg viewBox="0 0 24 24" className="size-5 fill-white/80"><path d="M20 4H4c-1.11 0-2 .89-2 2v12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"/></svg>, count: 99 },
@ -255,7 +255,7 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
{pathname !== "/virtual" && pathname !== "/special-games" && ( {pathname !== "/virtual" && pathname !== "/special-games" && (
<div className="hidden md:flex bg-brand-surface-light border-t border-white/5 h-8 px-3 items-center gap-6 text-[11px]"> <div className="hidden md:flex bg-brand-surface-light border-t border-white/5 h-8 px-3 items-center gap-6 text-[11px]">
{[ {[
{ label: "Sport Home", href: "/" }, { label: "BETS Home", href: "/" },
{ label: "Live View", href: "/live", forceActive: isLivePage }, { label: "Live View", href: "/live", forceActive: isLivePage },
].map((tab) => { ].map((tab) => {
const isActive = tab.forceActive || pathname === tab.href const isActive = tab.forceActive || pathname === tab.href
@ -267,7 +267,7 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
)} )}
> >
{tab.label} {tab.label}
{isActive && tab.label !== "Sport Home" && ( {isActive && tab.label !== "BETS Home" && (
<div className="absolute bottom-0 left-0 right-0 h-[2px] bg-brand-primary" /> <div className="absolute bottom-0 left-0 right-0 h-[2px] bg-brand-primary" />
)} )}
</Link> </Link>
@ -288,9 +288,9 @@ export function SiteHeader({ onLoginClick, onRegisterClick }: SiteHeaderProps) {
<div className="flex items-center justify-between px-4 py-3 bg-brand-surface border-b border-white/10"> <div className="flex items-center justify-between px-4 py-3 bg-brand-surface border-b border-white/10">
<div className="flex items-center"> <div className="flex items-center">
<div className="bg-brand-accent px-2 py-0.5 -skew-x-12 flex items-center h-[24px]"> <div className="bg-brand-accent px-2 py-0.5 -skew-x-12 flex items-center h-[24px]">
<span className="text-base font-black text-white italic tracking-tighter skew-x-12 leading-none">HARIF</span> <span className="text-base font-black text-white italic tracking-tighter skew-x-12 leading-none">FORTUNE</span>
</div> </div>
<span className="text-base font-black text-brand-primary italic tracking-tighter ml-1 leading-none">SPORT</span> <span className="text-base font-black text-brand-primary italic tracking-tighter ml-1 leading-none">BETS</span>
</div> </div>
<button onClick={() => setDrawerOpen(false)} className="text-white/60 hover:text-white text-2xl leading-none">×</button> <button onClick={() => setDrawerOpen(false)} className="text-white/60 hover:text-white text-2xl leading-none">×</button>
</div> </div>

View File

@ -35,7 +35,7 @@ export type {
TabColumnCell, TabColumnCell,
} from "./betting-types" } from "./betting-types"
const BASE_URL = (process.env.NEXT_PUBLIC_BETTING_API_BASE_URL || "http://localhost:8080/api/v1").replace(/\/$/, "") const BASE_URL = (process.env.NEXT_PUBLIC_BETTING_API_BASE_URL || "http://localhost:8080").replace(/\/$/, "")
const TENANT_SLUG = process.env.NEXT_PUBLIC_TENANT_SLUG || "fortunebets" const TENANT_SLUG = process.env.NEXT_PUBLIC_TENANT_SLUG || "fortunebets"
const DEFAULT_PAGE_SIZE = 20 const DEFAULT_PAGE_SIZE = 20