Skip to content

Commit b5e99bb

Browse files
committed
Enhance application structure and features
- Added 'motion' library for improved animations in the UI. - Updated layout to use a flex column layout for better responsiveness. - Refactored home page to include a tech stack section and improved visual elements using motion components. - Enhanced footer with structured columns for product, resources, company, and social links. - Updated video upload component to support various file types and increased file size limit. - Improved documentation with detailed configuration options and middleware capabilities. - Updated global CSS variables for better theming and consistency across the application.
1 parent 989d01d commit b5e99bb

27 files changed

+2472
-2233
lines changed

app/(home)/page.tsx

Lines changed: 383 additions & 217 deletions
Large diffs are not rendered by default.

app/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export default function Layout({ children }: { children: ReactNode }) {
4848
/>
4949
<link rel="manifest" href="/site.webmanifest" />
5050
</head>
51-
<body className="flex min-h-screen antialiased w-full ">
51+
<body className="flex flex-col min-h-screen antialiased w-full ">
5252
<RootProvider>
5353
<UppyProvider>
5454
<Toaster richColors />

bun.lockb

1.64 KB
Binary file not shown.

components/footer.tsx

Lines changed: 123 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,41 +14,130 @@ export default function Footer() {
1414
}
1515

1616
return (
17-
<footer className="border-t w-full lg:mt-20 mt-10 h-fit justify-end bg-background">
18-
<div className="container flex flex-col items-center justify-between space-y-4 py-10 md:h-24 md:flex-row md:space-y-0 md:py-0 mx-auto">
19-
<div className="flex flex-col items-center space-y-4 md:flex-row md:space-x-4 md:space-y-0">
20-
<p className="text-center text-sm leading-loose text-muted-foreground md:text-left">
21-
Built with{' '}
22-
<span
23-
role="img"
24-
aria-label="love"
25-
className="inline-block animate-pulse"
26-
>
27-
❤️
28-
</span>{' '}
29-
by Evans Maina.
30-
</p>
31-
<StatusWidget slug="tusflow" href="https://tusflow.openstatus.dev" />
17+
<footer className="w-full border-t dark:border-gray-800">
18+
<div className="container mx-auto py-12 px-4">
19+
<div className="grid grid-cols-1 md:grid-cols-4 gap-8">
20+
{/* Product Column */}
21+
<div className="space-y-4">
22+
<h3 className="font-semibold text-lg">Product</h3>
23+
<ul className="space-y-2">
24+
<li>
25+
<Link
26+
href="/docs"
27+
className="text-muted-foreground hover:text-foreground"
28+
>
29+
Documentation
30+
</Link>
31+
</li>
32+
<li>
33+
<Link
34+
href="/pricing"
35+
className="text-muted-foreground hover:text-foreground"
36+
>
37+
Pricing
38+
</Link>
39+
</li>
40+
<li>
41+
<StatusWidget
42+
slug="tusflow"
43+
href="https://tusflow.openstatus.dev"
44+
/>
45+
</li>
46+
</ul>
47+
</div>
48+
49+
{/* Resources Column */}
50+
<div className="space-y-4">
51+
<h3 className="font-semibold text-lg">Resources</h3>
52+
<ul className="space-y-2">
53+
<li>
54+
<Link
55+
href="/blog"
56+
className="text-muted-foreground hover:text-foreground"
57+
>
58+
Blog
59+
</Link>
60+
</li>
61+
<li>
62+
<Link
63+
href="/changelog"
64+
className="text-muted-foreground hover:text-foreground"
65+
>
66+
Changelog
67+
</Link>
68+
</li>
69+
</ul>
70+
</div>
71+
72+
{/* Company Column */}
73+
<div className="space-y-4">
74+
<h3 className="font-semibold text-lg">Company</h3>
75+
<ul className="space-y-2">
76+
<li>
77+
<Link
78+
href="/about"
79+
className="text-muted-foreground hover:text-foreground"
80+
>
81+
About
82+
</Link>
83+
</li>
84+
<li>
85+
<Link
86+
href="/contact"
87+
className="text-muted-foreground hover:text-foreground"
88+
>
89+
Contact
90+
</Link>
91+
</li>
92+
</ul>
93+
</div>
94+
95+
{/* Social Column */}
96+
<div className="space-y-4">
97+
<h3 className="font-semibold text-lg">Connect</h3>
98+
<div className="flex space-x-4">
99+
<Link
100+
href="https://github.com/evansso-bit/keyflow"
101+
target="_blank"
102+
rel="noopener noreferrer"
103+
className="text-muted-foreground hover:text-foreground"
104+
>
105+
<Github className="h-5 w-5" />
106+
<span className="sr-only">GitHub</span>
107+
</Link>
108+
<Link
109+
href="https://x.com/evansso_"
110+
target="_blank"
111+
rel="noopener noreferrer"
112+
className="text-muted-foreground hover:text-foreground"
113+
>
114+
<Twitter className="h-5 w-5" />
115+
<span className="sr-only">Twitter</span>
116+
</Link>
117+
</div>
118+
</div>
32119
</div>
33-
<div className="flex items-center space-x-4">
34-
<Link
35-
href="https://github.com/evansso-bit/keyflow"
36-
target="_blank"
37-
rel="noopener noreferrer"
38-
className="group transition-colors hover:text-foreground"
39-
>
40-
<Github className="h-5 w-5 text-muted-foreground transition-colors group-hover:text-foreground" />
41-
<span className="sr-only">Keyflow on GitHub</span>
42-
</Link>
43-
<Link
44-
href="https://x.com/evansso_"
45-
target="_blank"
46-
rel="noopener noreferrer"
47-
className="group transition-colors hover:text-foreground"
48-
>
49-
<Twitter className="h-5 w-5 text-muted-foreground transition-colors group-hover:text-foreground" />
50-
<span className="sr-only">Keyflow on Twitter</span>
51-
</Link>
120+
121+
<div className="mt-8 pt-8 border-t dark:border-gray-800">
122+
<div className="flex flex-col md:flex-row justify-between items-center">
123+
<p className="text-sm text-muted-foreground">
124+
© {new Date().getFullYear()} TusFlow. All rights reserved.
125+
</p>
126+
<div className="flex items-center space-x-4 mt-4 md:mt-0">
127+
<Link
128+
href="/privacy"
129+
className="text-sm text-muted-foreground hover:text-foreground"
130+
>
131+
Privacy Policy
132+
</Link>
133+
<Link
134+
href="/terms"
135+
className="text-sm text-muted-foreground hover:text-foreground"
136+
>
137+
Terms of Service
138+
</Link>
139+
</div>
140+
</div>
52141
</div>
53142
</div>
54143
</footer>

components/video-upload.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ export function VideoUpload() {
1414
const { resolvedTheme } = useTheme();
1515

1616
return (
17-
<div className="flex flex-col w-full">
18-
<div className="uppy-wrapper rounded-[0.75rem] border-2 border-dashed border-gray-200 dark:bg-gray-900 dark:border-gray-800">
17+
<div className="flex flex-col w-full max-w-4xl mx-auto">
18+
<div className="uppy-wrapper rounded-xl border dark:border-gray-800 bg-card">
1919
<Dashboard
2020
uppy={uppy}
2121
theme={resolvedTheme === 'dark' ? 'dark' : 'light'}
@@ -25,11 +25,11 @@ export function VideoUpload() {
2525
borderRadius: '0.75rem',
2626
}}
2727
showProgressDetails={true}
28-
note="Video files only, up to 5GB"
28+
note="Upload any file type, up to 50GB"
2929
proudlyDisplayPoweredByUppy={false}
3030
locale={{
3131
strings: {
32-
dropPasteFiles: 'Drop your video file here or %{browse}',
32+
dropPasteFiles: 'Drop your files here or %{browse}',
3333
browse: 'browse',
3434
uploadComplete: 'Upload successful!',
3535
uploadPaused: 'Upload paused',
@@ -39,21 +39,21 @@ export function VideoUpload() {
3939
cancelUpload: 'Cancel',
4040
xFilesSelected: {
4141
0: '%{smart_count} file selected',
42-
1: '%{smart_count} file selected',
42+
1: '%{smart_count} files selected',
4343
},
4444
uploadingXFiles: {
4545
0: 'Uploading %{smart_count} file',
46-
1: 'Uploading %{smart_count} file',
46+
1: 'Uploading %{smart_count} files',
4747
},
4848
},
4949
pluralize: (n) => (n === 1 ? 0 : 1),
5050
}}
5151
metaFields={[
52-
{ id: 'name', name: 'Name', placeholder: 'Video name' },
52+
{ id: 'name', name: 'Name', placeholder: 'File name' },
5353
{
5454
id: 'description',
5555
name: 'Description',
56-
placeholder: 'Video description',
56+
placeholder: 'File description',
5757
},
5858
{
5959
id: 'tags',

0 commit comments

Comments
 (0)