Skip to content

Commit 5f547e1

Browse files
committed
chore: website v4
1 parent a282d7a commit 5f547e1

File tree

129 files changed

+8735
-7785
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+8735
-7785
lines changed

.gitignore

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
1-
# build output
2-
dist/
3-
4-
# generated types
5-
.astro/
6-
7-
# dependencies
8-
node_modules/
9-
10-
# logs
1+
# Logs
2+
logs
3+
*.log
114
npm-debug.log*
125
yarn-debug.log*
136
yarn-error.log*
147
pnpm-debug.log*
8+
lerna-debug.log*
159

16-
# environment variables
17-
.env
18-
.env.production
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
1914

20-
# macOS-specific files
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
2119
.DS_Store
22-
23-
# jetbrains setting folder
24-
.idea/
25-
26-
# vscode setting folder
27-
.vscode/
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

App.jsx

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
import React, { useState, useEffect } from 'react';
2+
import { Routes, Route, useNavigate, useLocation } from 'react-router-dom';
3+
import { LanguageProvider } from './i18n/LanguageContext';
4+
import Header from './components/Header';
5+
import Hero from './components/HeroReleased';
6+
import Features from './components/Features';
7+
import Community from './components/Community';
8+
import DownloadSection from './components/Download';
9+
import Funding from './components/Funding';
10+
import Blog from './components/Blog';
11+
import DatabaseHome from './components/Database/DatabaseHome';
12+
import Dependencies from './components/Database/Dependencies';
13+
import Components from './components/Database/Components';
14+
import AppStore from './components/AppStore/AppStore';
15+
import AppDetails from './components/AppStore/AppDetails';
16+
import Docs from './components/Docs/Docs';
17+
import Sponsors from './components/Sponsors';
18+
import Gaming from './components/Gaming';
19+
import Next from './components/Next';
20+
import Runners from './components/Runners';
21+
import Eagle from './components/Eagle';
22+
import EagleBanner from './components/EagleBanner';
23+
import WineBridge from './components/WineBridge';
24+
import Footer from './components/Footer';
25+
import GrantBanner from './components/GrantBanner';
26+
27+
const App = () => {
28+
const navigate = useNavigate();
29+
const location = useLocation();
30+
const [showDownloadModal, setShowDownloadModal] = useState(false);
31+
const [theme, setTheme] = useState('system');
32+
33+
const getCurrentView = () => {
34+
const path = location.pathname;
35+
if (path.startsWith('/funding')) return 'funding';
36+
if (path.startsWith('/blog')) return 'blog';
37+
if (path.startsWith('/gaming')) return 'gaming';
38+
return 'home';
39+
};
40+
41+
const currentView = getCurrentView();
42+
43+
useEffect(() => {
44+
const root = window.document.documentElement;
45+
root.classList.remove('light', 'dark');
46+
47+
if (theme === 'system') {
48+
const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
49+
root.classList.add(systemTheme);
50+
} else {
51+
root.classList.add(theme);
52+
}
53+
}, [theme]);
54+
55+
const handleOpenDownload = () => {
56+
setShowDownloadModal(true);
57+
};
58+
59+
const handleOpenPost = (filename) => {
60+
navigate(`/blog/${filename}`);
61+
window.scrollTo(0, 0);
62+
};
63+
64+
const handleNavigate = (view) => {
65+
if (view === 'home') navigate('/');
66+
else navigate(`/${view}`);
67+
};
68+
69+
const isGaming = currentView === 'gaming';
70+
71+
return (
72+
<LanguageProvider>
73+
<div className="min-h-screen bg-zinc-50 dark:bg-black text-zinc-900 dark:text-zinc-100 font-sans selection:bg-blue-500 selection:text-white transition-colors duration-300">
74+
<Header
75+
currentView={currentView}
76+
onNavigate={handleNavigate}
77+
onDownload={handleOpenDownload}
78+
theme={theme}
79+
onThemeChange={setTheme}
80+
forceDark={isGaming}
81+
/>
82+
<main className="relative">
83+
<div className="fixed inset-0 bg-grid z-0 pointer-events-none opacity-[0.5] dark:opacity-[0.3]"></div>
84+
85+
<div className="fixed top-0 left-0 w-full h-[500px] bg-gradient-to-b from-zinc-900/5 to-transparent pointer-events-none z-0" />
86+
87+
<div className="relative z-10">
88+
<Routes>
89+
<Route path="/" element={
90+
<>
91+
<Hero onDownload={handleOpenDownload} onOpenPost={handleOpenPost} />
92+
<GrantBanner onOpenPost={handleOpenPost} />
93+
<Features onNavigate={handleNavigate} />
94+
<Community />
95+
<Sponsors onNavigate={handleNavigate} />
96+
<EagleBanner />
97+
</>
98+
} />
99+
<Route path="/funding" element={<Funding />} />
100+
<Route path="/blog" element={<Blog />} />
101+
<Route path="/blog/:slug" element={<Blog />} />
102+
<Route path="/database" element={<DatabaseHome />} />
103+
<Route path="/runners" element={<Runners />} />
104+
<Route path="/next" element={<Next />} />
105+
<Route path="/eagle" element={<Eagle />} />
106+
<Route path="/winebridge" element={<WineBridge onDownload={handleOpenDownload} />} />
107+
<Route path="/database/dependencies" element={<Dependencies />} />
108+
<Route path="/database/components" element={<Components />} />
109+
<Route path="/appstore" element={<AppStore />} />
110+
<Route path="/app" element={<AppDetails />} />
111+
<Route path="/docs/*" element={<Docs />} />
112+
<Route path="/gaming" element={<Gaming onNavigate={handleNavigate} />} />
113+
</Routes>
114+
</div>
115+
<DownloadSection showModal={showDownloadModal} setShowModal={setShowDownloadModal} />
116+
</main>
117+
<Footer />
118+
</div>
119+
</LanguageProvider>
120+
);
121+
};
122+
123+
export default App;

CNAME

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
usebottles.com
1+
usebottles.com

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ All commands are run from the root of the project, from a terminal:
1010
| `pnpm install` | Installs dependencies |
1111
| `pnpm run dev` | Starts local dev server at `localhost:4321` |
1212
| `pnpm run build` | Build your production site to `./dist/` |
13-
| `pnpm run preview` | Preview your build locally, before deploying |
14-
| `pnpm run astro ...` | Run CLI commands like `astro add`, `astro check` |
15-
| `pnpm run astro -- --help` | Get help using the Astro CLI |
1613

1714
It's recommended to use `pnpm` as the package manager.
1815

astro.config.mjs

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)