Skip to content

Commit 6ff841a

Browse files
committed
app: spirograph generator
1 parent 6a5e7a4 commit 6ff841a

File tree

4 files changed

+389
-1
lines changed

4 files changed

+389
-1
lines changed

public/apps/apps.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@
207207
"pinned_order": 10,
208208
"created_at": "2025-11-25T17:00:00+03:00"
209209
},
210+
{
211+
"slug": "spirograph",
212+
"to": "/apps/spirograph",
213+
"title": "Spirograph Generator",
214+
"description": "Create mesmerizing geometric patterns with math.",
215+
"icon": "AtomIcon",
216+
"pinned_order": 17,
217+
"created_at": "2025-11-29T14:00:00+03:00"
218+
},
210219
{
211220
"slug": "codename-generator",
212221
"to": "/apps/codename-generator",

src/components/AnimatedRoutes.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ const KeyboardTypingSpeedTesterPage = lazy(
124124
);
125125
const NotepadPage = lazy(() => import('../pages/apps/NotepadPage'));
126126
const CozyAppPage = lazy(() => import('../pages/apps/CozyAppPage'));
127+
const SpirographPage = lazy(() => import('../pages/apps/SpirographPage'));
127128
const FezynthPage = lazy(() => import('../pages/apps/FezynthPage'));
128129
const CodeSeancePage = lazy(() => import('../pages/apps/CodeSeancePage'));
129130
const PinnedAppPage = lazy(() => import('../pages/PinnedAppPage'));
@@ -796,6 +797,10 @@ function AnimatedRoutes() {
796797
path="/apps::np"
797798
element={<Navigate to="/apps/notepad" replace />}
798799
/>
800+
<Route
801+
path="/apps::spiro"
802+
element={<Navigate to="/apps/spirograph" replace />}
803+
/>
799804
{/* End of hardcoded redirects */}
800805
<Route
801806
path="/apps/ip"
@@ -1710,6 +1715,23 @@ function AnimatedRoutes() {
17101715
</motion.div>
17111716
}
17121717
/>
1718+
<Route
1719+
path="/apps/spirograph"
1720+
element={
1721+
<motion.div
1722+
initial="initial"
1723+
animate="in"
1724+
exit="out"
1725+
variants={pageVariants}
1726+
transition={pageTransition}
1727+
>
1728+
<Suspense fallback={<Loading />}>
1729+
<SpirographPage />
1730+
</Suspense>
1731+
</motion.div>
1732+
}
1733+
/>
1734+
{/*Pinned Apps*/}
17131735
<Route
17141736
path="/pinned-apps"
17151737
element={

src/pages/apps/FootballEmblemCreatorPage.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ import {
5555
PercentIcon,
5656
} from '@phosphor-icons/react';
5757
import CustomDropdown from '../../components/CustomDropdown'; // Add this line
58-
import colors from '../../config/colors';
5958
import useSeo from '../../hooks/useSeo';
6059
import { useToast } from '../../hooks/useToast';
6160
import BreadcrumbTitle from '../../components/BreadcrumbTitle';

0 commit comments

Comments
 (0)