From 1a3df305e8e8d21003c6adeaa5a4b2f45831b11b Mon Sep 17 00:00:00 2001 From: Tajim Date: Sun, 23 Aug 2026 13:19:10 +0600 Subject: [PATCH 1/2] feat: add projects page and update footer links --- resources/js/app.ts | 16 ++-- resources/js/components/Footer.vue | 43 ++------- resources/js/components/NavBar.vue | 7 ++ resources/js/pages/Projects.vue | 143 +++++++++++++++++++++++++++++ routes/web.php | 1 + tests/Feature/PublicPagesTest.php | 6 ++ 6 files changed, 175 insertions(+), 41 deletions(-) create mode 100644 resources/js/pages/Projects.vue diff --git a/resources/js/app.ts b/resources/js/app.ts index 787b2ac..66dd003 100644 --- a/resources/js/app.ts +++ b/resources/js/app.ts @@ -6,14 +6,16 @@ import AppLayout from './layouts/AppLayout.vue'; const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; // Apply dark mode before paint to prevent flash -const stored = localStorage.getItem('theme'); +if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') { + const stored = localStorage.getItem('theme'); -if ( - stored === 'dark' || - (stored !== 'light' && - window.matchMedia('(prefers-color-scheme: dark)').matches) -) { - document.documentElement.classList.add('dark'); + if ( + stored === 'dark' || + (stored !== 'light' && + window.matchMedia('(prefers-color-scheme: dark)').matches) + ) { + document.documentElement.classList.add('dark'); + } } registerSW({ immediate: true }); diff --git a/resources/js/components/Footer.vue b/resources/js/components/Footer.vue index 71e0867..825a385 100644 --- a/resources/js/components/Footer.vue +++ b/resources/js/components/Footer.vue @@ -3,7 +3,7 @@ import { Link } from '@inertiajs/vue3'; import { Github, Facebook, - BookOpen, + Layers, Users, UserPlus, ExternalLink, @@ -64,14 +64,7 @@ import AppLogo from './AppLogo.vue'; @@ -87,13 +80,13 @@ import AppLogo from './AppLogo.vue'; @@ -168,15 +159,6 @@ import AppLogo from './AppLogo.vue'; Terms of Service - -
  • - - Content Policy - -
  • @@ -188,14 +170,7 @@ import AppLogo from './AppLogo.vue';

    - A concern of - Tajim + A concern of HSCStack

    {

    + + Projects + + +import { Head, Link } from '@inertiajs/vue3'; +import { ArrowLeft, ExternalLink, ArrowRight, Users } from 'lucide-vue-next'; + + + diff --git a/routes/web.php b/routes/web.php index 3173f83..f784a59 100644 --- a/routes/web.php +++ b/routes/web.php @@ -101,6 +101,7 @@ Route::inertia('/join', 'platform/JoinTeam'); Route::inertia('/guide', 'ContributorGuide'); Route::inertia('/ai', 'ai/Index'); + Route::inertia('/projects', 'Projects'); Route::get('/about-us', [AboutUsController::class, 'index']); diff --git a/tests/Feature/PublicPagesTest.php b/tests/Feature/PublicPagesTest.php index b2ef665..845808f 100644 --- a/tests/Feature/PublicPagesTest.php +++ b/tests/Feature/PublicPagesTest.php @@ -12,6 +12,12 @@ $response->assertStatus(200); }); +test('the projects page loads successfully', function () { + $response = $this->get('/projects'); + + $response->assertStatus(200); +}); + test('non-existent public resources render the 404 error page', function () { $response = $this->get('/resources/999999'); From ec1e78a37d6b54be1b859c642dedd162dd130cfd Mon Sep 17 00:00:00 2001 From: Tajim Date: Sun, 23 Aug 2026 13:19:59 +0600 Subject: [PATCH 2/2] revert: restore app.ts to original state --- resources/js/app.ts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/resources/js/app.ts b/resources/js/app.ts index 66dd003..787b2ac 100644 --- a/resources/js/app.ts +++ b/resources/js/app.ts @@ -6,16 +6,14 @@ import AppLayout from './layouts/AppLayout.vue'; const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; // Apply dark mode before paint to prevent flash -if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') { - const stored = localStorage.getItem('theme'); +const stored = localStorage.getItem('theme'); - if ( - stored === 'dark' || - (stored !== 'light' && - window.matchMedia('(prefers-color-scheme: dark)').matches) - ) { - document.documentElement.classList.add('dark'); - } +if ( + stored === 'dark' || + (stored !== 'light' && + window.matchMedia('(prefers-color-scheme: dark)').matches) +) { + document.documentElement.classList.add('dark'); } registerSW({ immediate: true });