Skip to content

Commit 3031f5f

Browse files
committed
final website
1 parent a1e3418 commit 3031f5f

24 files changed

Lines changed: 5098 additions & 1337 deletions

.firebase/hosting.ZGlzdA.cache

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
icons.svg,1774188111000,a71fc7c82918feffdb1e7e59f1b494531849b1025cedc75bc6c0dfa2a941d54d
2+
favicon.svg,1774188111000,44fea64ea0b4986cf22dbc28741fe402f021baf13dbd2cc8ce6aa04b24300573
3+
index.html,1775740855904,49bcdd0f7d5e99c9d44d36ec404ece985d6d256122ff31e3437ac0b0daa9bf27
4+
assets/VolunteerSettings-CU6r5fj5.js,1775740855904,47dfb2b3bdc1434486cbec3348a4bf5e59c4b7e5235d0fd4c8681817d7b10a88
5+
assets/Volunteers-iJSO38n0.js,1775740855904,838c178a04ee4646cf36dddde8a94a90e83150e7fcfdc26d57b248c1c286fa73
6+
assets/VolunteerRegister-BaUrfoUF.js,1775740855904,22041f5646b518200bdf8247edf48f849c2ec42c89615f207dccb7e5651e6d61
7+
assets/VolunteerApplications-BJMNtysz.js,1775740855904,7ed9148d7716f50781f3147dd7c6245d7f59679b6c073e2f0108bba75d45ea5c
8+
assets/Updates-CQJC3dW4.js,1775740855904,e06a940d41785f8cc651300e79abaa52256c28faeed6e892a7eb63444d5b4ec9
9+
assets/Services-B2U3xRYh.js,1775740855903,081e30969fdac063bed1488178ca00e9504e51694395c60a75748ff76c5807ab
10+
assets/Subscription-jTjE1M-T.js,1775740855903,f65ca5125f9b1bd37e2a4bb26cdd76e36377ba615f06ccd7de41d4ea88a7d53d
11+
assets/ServiceCertificate-CTNFUQsO.js,1775740855888,a7c83d1505011e18b003ae3623095d38a25a8ead7d670c57590f559fb952f676
12+
assets/search-2VjUvK_r.js,1775740855904,a70caea7b61dada0ff3c87ae7729da648b11cc0fc123bfb73649f9844b78a54c
13+
assets/profileOptions-DWfR52ts.js,1775740855904,44b48faf4a9223afe816b4776953cfaee6a738d68ac7e02bb1ab5cd140cf0f28
14+
assets/RegistrationConsentModal-D45Oqh0H.js,1775740855888,2fb51b05c5a597d0f4643e690bb0a2a45e802e800bee0ffbf1cae8c04d347bec
15+
assets/Pricing-IEebYxbw.js,1775740855888,078440a6bbb6b1cb96b5475edb5e8a9de8f9509e7c5e2386c6411835b73456a6
16+
assets/PostOpportunity-skZ8S04K.js,1775740855888,056d857b3225fd316f0b624441eec157493475b433c2e092200b685e23845821
17+
assets/OrganizationRegister-CVq2ZXnj.js,1775740855888,1b98fa233848ffe6fbc3eebc2dac0f1b713be0f461c45affc11009953b2f09c6
18+
assets/OrganizationSettings-BNjy_4Y5.js,1775740855888,bc80219573cb9ec7534f023b97aef47709557c39abebc989f2e7d970d9aa8997
19+
assets/roles-RohpYcWc.js,1775740855904,d829015a3d30851841a1a57f612e3e77c9336cf676be3d56729055c60cadb6bb
20+
assets/OpportunityDetails-BFdwDdDt.js,1775740855888,2edfe0cef0af6f7ec8dad81e3a552d7741c811a8d697862ff067feaf8b297d00
21+
assets/messaging-CX2ZrjS_.js,1775740855904,a0b866b3d89a8a3d3c07ae1eb1cd93cc20fba7b81275840f77c05e5f6ff61a5c
22+
assets/Opportunities-D9YId0zV.js,1775740855888,1285324ce1bd5128e8ae27b34fb246fa58e3028e66eb422f0b0cdf95be1566d0
23+
assets/matching-Df4WxHiz.js,1775740855904,4c4b278a45ab1de2055fef6bfb0b8c09de29f78ddd5ff67979454b716ea63d00
24+
assets/Messages-Bt7zhAXo.js,1775740855888,fc2706513e6eb7f07e1e73ceb98f7ba99036e4728d880b583dab76085410c504
25+
assets/Login-Cq9orcBw.js,1775740855888,907de32dc91f04d315f38731c13a55e6a8de36a9afd96db66c52e29f5b546e88
26+
assets/jsx-runtime-BnxRlLMJ.js,1775740855904,a402e19ad1f186c25748a2213e4600b32648938d2a3f84c9fd669579ca62be36
27+
assets/ImpactReport-CeEnNGZ7.js,1775740855888,af6d89559a0347704056d9e3a2743c195bb90b26f87018fcb878fd83cf4733fc
28+
assets/Home-Cp-rbExR.js,1775740855888,958cb95c30ef3b525eace36afd6a0122ab69756fa28076b56c919a9c8f525c71
29+
assets/heart-BIJYNuFb.js,1775740855904,7ad08e01f49934c9a9dccf5fd366705a1cc0a848f606fa8d6d9784f47bb8840f
30+
assets/EditOpportunity-DAD4x_n9.js,1775740855888,0712ad72d0086076c6db7c00dfbb464ad355bd5ad9b743a927c608fa26010d3c
31+
assets/downloadDocuments-BY_OYZEd.js,1775740855904,c67d1ea4e50384a4c3bad3209c0d3e037e334d8a4478093dfed2451933827287
32+
assets/Contact-CrJLdpY9.js,1775740855888,296b353a532d55ebc7d05f28714e00f661a3ce67f0a4e58337e19fdc5c030fcb
33+
assets/BillingDocument-DVKsbzKS.js,1775740855888,2b35986c3616ebea99de7680787849e1e3caac5fab2db352ea709a8f284bff9b
34+
assets/Checkout-8RmMWYhM.js,1775740855888,d31943f1e4c2c2542653a45a6de203545f89b6e7cba5613d17c6b501813a0514
35+
assets/Dashboard-DnUAiaWm.js,1775740855888,f48a887fe984f55bdc59fc90cb33951d39b312b566822ceddc1668729fc6edef
36+
assets/applications-CaywgtF7.js,1775740855904,47f112db1d0795674f4c8fede6f690c28113bd7a810380448b6f29809de82718
37+
assets/Applications-B4B8Pa1d.js,1775740855888,cfd53e0d450e740155d38b3375e07c99e8d566eb3337b9444ba26727f7a440f6
38+
assets/AcceptedRoles-De2sUCXR.js,1775740855888,2b9c7f75c8da05a80019617c52e80725b50ebce4bfe5b6153dc9d36464139cc4
39+
assets/About-kk3EguXf.js,1775740855886,1e7e3849e0f44bde807c6c182839de8f45822a9de64e11ae684510a8200a6b52
40+
assets/index-CGiVC94d.css,1775740855904,5c7a8c23ce5f28892cba92429dae5d53836972a52849d793ba1cf58431adf0bf
41+
assets/navbar logo-_2YPUcyx.png,1775740855904,8ad1e4e7b7c8a7fd91c2be33ef10ba9d164054f2dc4683212907239a066988e8
42+
assets/Favicon-CXv8QPMj.png,1775740855904,2b4e83ce082be7999e7e412cbb0eab02036c10a82310a5866134337665696fdd
43+
assets/index-CtrpqeDA.js,1775740855886,ef302ca019532f09d0c4509a025ad9a9f4680e4d7621a15a5fb2aa5c503689a6
44+
assets/firebase-BsocXjeY.js,1775740855904,964b6936b68dd891e7ba07577dbc76c829b3bb2fc182b7bb22688103435ead1a

src/App.jsx

Lines changed: 89 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { Suspense, lazy } from "react";
2-
import { BrowserRouter, Routes, Route } from "react-router-dom";
2+
import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom";
33
import Navbar from "./components/layout/Navbar";
44
import Footer from "./components/layout/Footer";
55
import ScrollToTop from "./components/layout/ScrollToTop";
66
import ScrollTopButton from "./components/layout/ScrollTopButton";
77
import NotificationCenter from "./components/layout/NotificationCenter";
88
import ProtectedRoute from "./components/auth/ProtectedRoute";
9+
import { useAuth } from "./context/AuthContext";
910

1011
const Home = lazy(() => import("./pages/Home"));
1112
const About = lazy(() => import("./pages/About"));
@@ -25,6 +26,11 @@ const OrganizationRegister = lazy(() => import("./pages/OrganizationRegister"));
2526
const Login = lazy(() => import("./pages/Login"));
2627
const Contact = lazy(() => import("./pages/Contact"));
2728
const Dashboard = lazy(() => import("./pages/Dashboard"));
29+
const Applications = lazy(() => import("./pages/Applications"));
30+
const VolunteerApplications = lazy(() => import("./pages/VolunteerApplications"));
31+
const AcceptedRoles = lazy(() => import("./pages/AcceptedRoles"));
32+
const Subscription = lazy(() => import("./pages/Subscription"));
33+
const Volunteers = lazy(() => import("./pages/Volunteers"));
2834
const PostOpportunity = lazy(() => import("./pages/PostOpportunity"));
2935
const EditOpportunity = lazy(() => import("./pages/EditOpportunity"));
3036
const Updates = lazy(() => import("./pages/Updates"));
@@ -41,12 +47,30 @@ function RouteFallback() {
4147
);
4248
}
4349

44-
function App() {
50+
function AppLayout() {
51+
const { user, profile } = useAuth();
52+
const location = useLocation();
53+
const consoleRoutes = [
54+
"/dashboard",
55+
"/my-opportunities",
56+
"/volunteers",
57+
"/applications",
58+
"/accepted-roles",
59+
"/messages",
60+
"/subscription",
61+
"/organization-settings",
62+
"/volunteer-settings",
63+
"/post-opportunity",
64+
];
65+
const showConsoleShell =
66+
user &&
67+
consoleRoutes.some((route) => location.pathname === route || location.pathname.startsWith(`${route}/`));
68+
4569
return (
46-
<BrowserRouter>
70+
<>
4771
<ScrollToTop />
4872

49-
<div className="app-shell">
73+
<div className={`app-shell ${showConsoleShell ? "app-shell-console-home" : ""}`}>
5074
<Navbar />
5175
<NotificationCenter />
5276
<main className="page-wrap">
@@ -113,6 +137,22 @@ function App() {
113137
}
114138
/>
115139
<Route path="/opportunities" element={<Opportunities />} />
140+
<Route
141+
path="/my-opportunities"
142+
element={
143+
<ProtectedRoute allowedRoles={["volunteer", "organisation"]}>
144+
<Opportunities />
145+
</ProtectedRoute>
146+
}
147+
/>
148+
<Route
149+
path="/my-opportunities/:id"
150+
element={
151+
<ProtectedRoute allowedRoles={["volunteer", "organisation"]}>
152+
<OpportunityDetails />
153+
</ProtectedRoute>
154+
}
155+
/>
116156
<Route path="/opportunities/:id" element={<OpportunityDetails />} />
117157
<Route path="/updates" element={<Updates />} />
118158
<Route path="/volunteer-register" element={<VolunteerRegister />} />
@@ -129,6 +169,42 @@ function App() {
129169
}
130170
/>
131171

172+
<Route
173+
path="/volunteers"
174+
element={
175+
<ProtectedRoute allowedRoles={["organisation"]}>
176+
<Volunteers />
177+
</ProtectedRoute>
178+
}
179+
/>
180+
181+
<Route
182+
path="/applications"
183+
element={
184+
<ProtectedRoute allowedRoles={["organisation", "volunteer"]}>
185+
{profile?.role === "organisation" ? <Applications /> : <VolunteerApplications />}
186+
</ProtectedRoute>
187+
}
188+
/>
189+
190+
<Route
191+
path="/accepted-roles"
192+
element={
193+
<ProtectedRoute allowedRoles={["volunteer"]}>
194+
<AcceptedRoles />
195+
</ProtectedRoute>
196+
}
197+
/>
198+
199+
<Route
200+
path="/subscription"
201+
element={
202+
<ProtectedRoute allowedRoles={["organisation"]}>
203+
<Subscription />
204+
</ProtectedRoute>
205+
}
206+
/>
207+
132208
<Route
133209
path="/post-opportunity"
134210
element={
@@ -149,9 +225,17 @@ function App() {
149225
</Routes>
150226
</Suspense>
151227
</main>
152-
<Footer />
228+
{!showConsoleShell && <Footer />}
153229
<ScrollTopButton />
154230
</div>
231+
</>
232+
);
233+
}
234+
235+
function App() {
236+
return (
237+
<BrowserRouter>
238+
<AppLayout />
155239
</BrowserRouter>
156240
);
157241
}

0 commit comments

Comments
 (0)