mirror of
https://github.com/evroon/bracket.git
synced 2026-07-31 02:10:50 -04:00
This PR migrates formatting in `frontend/` from Prettier to `oxfmt`,
including script wiring and dependency cleanup. It removes the Prettier
plugin/config path so formatting is handled by a single tool.
- **Script migration**
- Renamed/rewired formatting scripts in `frontend/package.json`:
- `prettier:check` → `format:check` (`oxfmt --check .`)
- `prettier:write` → `format:write` (`oxfmt .`)
- Updated dependent scripts:
- `test` now runs `pnpm run format:write`
- `openapi-ts` now runs `pnpm run format:write` after generation
- **Dependency cleanup**
- Removed `prettier-plugin-organize-imports` from `dependencies`
- Removed `prettier` from `devDependencies`
- Added `oxfmt` (latest stable at update time)
- **Config removal**
- Deleted `frontend/.prettierrc.js` (no longer used after migration)
- **Lockfile alignment**
- Updated `frontend/pnpm-lock.yaml` to reflect the dependency and script
ecosystem change
```json
{
"scripts": {
"format:check": "oxfmt --check .",
"format:write": "oxfmt .",
"openapi-ts": "openapi-ts && pnpm run format:write",
"test": "tsc && pnpm run format:write"
}
}
```
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Erik Vroon <11857441+evroon@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
78 lines
2.5 KiB
TypeScript
78 lines
2.5 KiB
TypeScript
import {
|
|
Accordion,
|
|
AccordionContent,
|
|
AccordionItem,
|
|
AccordionTrigger,
|
|
} from "components/ui/accordion";
|
|
import Link from "next/link";
|
|
|
|
interface FAQProps {
|
|
question: string;
|
|
answer: string;
|
|
value: string;
|
|
}
|
|
|
|
const FAQList: FAQProps[] = [
|
|
{
|
|
question: "Is this template free?",
|
|
answer: "Yes. It is a free ChadcnUI template.",
|
|
value: "item-1",
|
|
},
|
|
{
|
|
question: "Lorem ipsum dolor sit amet consectetur adipisicing elit?",
|
|
answer:
|
|
"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint labore quidem quam? Consectetur sapiente iste rerum reiciendis animi nihil nostrum sit quo, modi quod.",
|
|
value: "item-2",
|
|
},
|
|
{
|
|
question: "Lorem ipsum dolor sit amet Consectetur natus dolores minus quibusdam?",
|
|
answer:
|
|
"Lorem ipsum dolor sit amet consectetur, adipisicing elit. Labore qui nostrum reiciendis veritatis necessitatibus maxime quis ipsa vitae cumque quo?",
|
|
value: "item-3",
|
|
},
|
|
{
|
|
question: "Lorem ipsum dolor sit amet, consectetur adipisicing elit?",
|
|
answer: "Lorem ipsum dolor sit amet consectetur, adipisicing elit.",
|
|
value: "item-4",
|
|
},
|
|
{
|
|
question: "Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur natus?",
|
|
answer:
|
|
"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint labore quidem quam? Consectetur sapiente iste rerum reiciendis animi nihil nostrum sit quo, modi quod.",
|
|
value: "item-5",
|
|
},
|
|
];
|
|
|
|
export const FAQ = () => {
|
|
return (
|
|
<section id="faq" className="container py-16">
|
|
<h2 className="text-3xl md:text-4xl font-bold mb-4">
|
|
Frequently Asked{" "}
|
|
<span className="bg-linear-to-b from-primary/70 to-primary text-transparent bg-clip-text">
|
|
Questions
|
|
</span>
|
|
</h2>
|
|
|
|
<Accordion type="single" collapsible className="w-full AccordionRoot">
|
|
{FAQList.map(({ question, answer, value }: FAQProps) => (
|
|
<AccordionItem key={value} value={value}>
|
|
<AccordionTrigger className="text-left">{question}</AccordionTrigger>
|
|
|
|
<AccordionContent>{answer}</AccordionContent>
|
|
</AccordionItem>
|
|
))}
|
|
</Accordion>
|
|
|
|
<h3 className="font-medium mt-4">
|
|
Still have questions?{" "}
|
|
<Link
|
|
href="https://github.com/evroon/bracket/discussions/new/choose"
|
|
className="text-primary transition-all border-border border-primary hover:border-b-2"
|
|
>
|
|
Open a discussion
|
|
</Link>
|
|
</h3>
|
|
</section>
|
|
);
|
|
};
|