mirror of
https://github.com/OpenCut-app/OpenCut.git
synced 2026-07-13 21:52:53 +02:00
Docstrings generation was requested by @joepduin. * https://github.com/OpenCut-app/OpenCut/pull/638#issuecomment-3444277885 The following files were modified: * `apps/web/src/app/api/get-upload-url/route.ts` * `apps/web/src/app/api/sounds/search/route.ts` * `apps/web/src/app/api/transcribe/route.ts` * `apps/web/src/app/api/waitlist/export/route.ts` * `apps/web/src/components/editor/export-button.tsx` * `apps/web/src/components/editor/layout-guide-overlay.tsx` * `apps/web/src/components/editor/media-panel/tabbar.tsx` * `apps/web/src/components/editor/media-panel/views/captions.tsx` * `apps/web/src/components/editor/media-panel/views/media.tsx` * `apps/web/src/components/editor/media-panel/views/stickers.tsx` * `apps/web/src/components/editor/panel-base-view.tsx` * `apps/web/src/components/editor/panel-preset-selector.tsx` * `apps/web/src/components/editor/preview-panel.tsx` * `apps/web/src/components/editor/properties-panel/index.tsx` * `apps/web/src/components/editor/properties-panel/media-properties.tsx` * `apps/web/src/components/editor/properties-panel/text-properties.tsx` * `apps/web/src/components/editor/timeline/timeline-element.tsx` * `apps/web/src/components/editor/timeline/timeline-marker.tsx` * `apps/web/src/components/footer.tsx` * `apps/web/src/components/icons.tsx` * `apps/web/src/components/keyboard-shortcuts-help.tsx` * `apps/web/src/components/language-select.tsx` * `apps/web/src/components/theme-toggle.tsx` * `apps/web/src/components/ui/editable-timecode.tsx` * `apps/web/src/components/ui/font-picker.tsx` * `apps/web/src/components/ui/input-with-back.tsx` * `apps/web/src/hooks/use-edge-auto-scroll.ts` * `apps/web/src/hooks/use-frame-cache.ts` * `apps/web/src/hooks/use-highlight-scroll.ts` * `apps/web/src/hooks/use-infinite-scroll.ts` * `apps/web/src/hooks/use-sound-search.ts` * `apps/web/src/lib/editor-utils.ts` * `apps/web/src/lib/export.ts` * `apps/web/src/lib/iconify-api.ts` * `apps/web/src/lib/timeline-renderer.ts` * `apps/web/src/lib/transcription-utils.ts` * `apps/web/src/lib/zk-encryption.ts` * `apps/web/src/stores/text-properties-store.ts`
137 lines
4.8 KiB
TypeScript
137 lines
4.8 KiB
TypeScript
"use client";
|
|
|
|
import { motion } from "motion/react";
|
|
import Link from "next/link";
|
|
import { RiDiscordFill, RiTwitterXLine } from "react-icons/ri";
|
|
import { FaGithub } from "react-icons/fa6";
|
|
import Image from "next/image";
|
|
|
|
/**
|
|
* Renders the site footer containing the brand, social icons, and navigational links.
|
|
*
|
|
* The footer animates its opacity from 0 to 1 on mount. External links open in a new tab with rel="noopener noreferrer".
|
|
*
|
|
* @returns The footer React element
|
|
*/
|
|
export function Footer() {
|
|
return (
|
|
<motion.footer
|
|
className="bg-background border-t"
|
|
initial={{ opacity: 0 }}
|
|
animate={{ opacity: 1 }}
|
|
transition={{ delay: 0.8, duration: 0.8 }}
|
|
>
|
|
<div className="max-w-5xl mx-auto px-8 py-10">
|
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-12 mb-8">
|
|
{/* Brand Section */}
|
|
<div className="md:col-span-1 max-w-sm">
|
|
<div className="flex justify-start items-center gap-2 mb-4">
|
|
<Image
|
|
src="/logo.svg"
|
|
alt="OpenCut"
|
|
width={24}
|
|
height={24}
|
|
className="invert dark:invert-0"
|
|
/>
|
|
<span className="font-bold text-lg">OpenCut</span>
|
|
</div>
|
|
<p className="text-sm md:text-left text-muted-foreground mb-5">
|
|
The open source video editor that gets the job done. Simple,
|
|
powerful, and works on any platform.
|
|
</p>
|
|
<div className="flex justify-start gap-3">
|
|
<Link
|
|
href="https://github.com/OpenCut-app/OpenCut"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<FaGithub className="h-5 w-5" />
|
|
</Link>
|
|
<Link
|
|
href="https://x.com/OpenCutApp"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<RiTwitterXLine className="h-5 w-5" />
|
|
</Link>
|
|
<Link
|
|
href="https://discord.com/invite/Mu3acKZvCp"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
<RiDiscordFill className="h-5 w-5" />
|
|
</Link>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="flex gap-12 justify-start items-start py-2">
|
|
<div>
|
|
<h3 className="font-semibold text-foreground mb-4">Resources</h3>
|
|
<ul className="space-y-2 text-sm">
|
|
<li>
|
|
<Link
|
|
href="/roadmap"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Roadmap
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link
|
|
href="/privacy"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Privacy policy
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link
|
|
href="/terms"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Terms of use
|
|
</Link>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
{/* Company Links */}
|
|
<div>
|
|
<h3 className="font-semibold text-foreground mb-4">Company</h3>
|
|
<ul className="space-y-2 text-sm">
|
|
<li>
|
|
<Link
|
|
href="/contributors"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
>
|
|
Contributors
|
|
</Link>
|
|
</li>
|
|
<li>
|
|
<Link
|
|
href="https://github.com/OpenCut-app/OpenCut/blob/main/README.md"
|
|
className="text-muted-foreground hover:text-foreground transition-colors"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
About
|
|
</Link>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{/* Bottom Section */}
|
|
<div className="pt-2 flex flex-col md:flex-row justify-between items-start gap-4">
|
|
<div className="flex items-center gap-4 text-sm text-muted-foreground">
|
|
<span>© 2025 OpenCut, All Rights Reserved</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</motion.footer>
|
|
);
|
|
} |