Skip to content
Open

V2 #2

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/* eslint-env node */

module.exports = {
env: { browser: true, es2020: true },
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react-hooks/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: { ecmaVersion: "latest", sourceType: "module" },
plugins: ["react-refresh"],
rules: {
"react-refresh/only-export-components": "warn",
},
};
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
legacy-peer-deps=true
strict-peer-dependencies=false
1 change: 1 addition & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"files.associations": {
"*.css": "tailwindcss"
},
"cSpell.words": ["kbar", "refinedev", "reprose"]
}
207 changes: 207 additions & 0 deletions _frontend/components/app-sidebar.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import {
Sidebar,
SidebarContent,
SidebarGroup,
SidebarGroupContent,
SidebarGroupLabel,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
} from "@/components/ui/sidebar";
import {
ChevronsUpDown,
FileJson,
FileText,
Folder,
FolderUp,
Github,
PlusIcon,
} from "lucide-react";

export function AppSidebar() {
return (
<Sidebar>
<SidebarHeader>
<SidebarMenu>
<SidebarMenuItem>
<DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuButton>
<Github /> Github{" "}
<span className="text-gray-400">jmas/create</span>
<ChevronsUpDown className="ml-auto" />
</SidebarMenuButton>
</DropdownMenuTrigger>
<DropdownMenuContent
side="top"
className="w-[--radix-popper-anchor-width]"
>
<DropdownMenuCheckboxItem>
Local Storage
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem checked>
Github <span className="text-gray-400">jmas/create</span>
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem>
Google Drive{" "}
<span className="text-gray-400">jmas.ukraine@gmail.com</span>
</DropdownMenuCheckboxItem>
<DropdownMenuSeparator />
<DropdownMenuItem>
<PlusIcon />
Add source
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</SidebarMenuItem>
</SidebarMenu>
</SidebarHeader>
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>Files</SidebarGroupLabel>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarGroupAction title="Add folder or file">
<Plus /> <span className="sr-only">Add folder or file</span>
</SidebarGroupAction>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuItem>
<Folder /> Add Folder
</DropdownMenuItem>
<DropdownMenuItem>
<FileText /> Add File
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
<SidebarGroupContent>
<SidebarMenuButton className="relative">
<FolderUp size="1rem" />
<a href="#">_posts</a>
</SidebarMenuButton>
<SidebarMenuButton className="relative">
<Folder size="1rem" />
<a href="#">archive</a>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuAction>
<MoreHorizontal />
</SidebarMenuAction>
</DropdownMenuTrigger>
<DropdownMenuContent side="right" align="start">
<DropdownMenuItem>
<FolderPen />
Rename or Move
</DropdownMenuItem>
<DropdownMenuItem>
<Trash />
Delete
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
</SidebarMenuButton>
<SidebarMenuButton className="relative">
<FileText size="1rem" />
<a href="#">post1.md</a>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuAction>
<MoreHorizontal />
</SidebarMenuAction>
</DropdownMenuTrigger>
<DropdownMenuContent side="right" align="start">
<DropdownMenuItem>
<Pencil />
Edit
</DropdownMenuItem>
<DropdownMenuItem>
<FolderPen />
Rename or Move
</DropdownMenuItem>
<DropdownMenuItem>
<Trash />
Delete
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
</SidebarMenuButton>
<SidebarMenuButton className="relative bg-gray-100">
<FileText size="1rem" />
<a href="#">post2.md</a>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuAction>
<MoreHorizontal />
</SidebarMenuAction>
</DropdownMenuTrigger>
<DropdownMenuContent side="right" align="start">
<DropdownMenuItem>
<Pencil />
Edit
</DropdownMenuItem>
<DropdownMenuItem>
<FolderPen />
Rename or Move
</DropdownMenuItem>
<DropdownMenuItem>
<Trash />
Delete
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
</SidebarMenuButton>
<SidebarMenuButton className="relative">
<FileText size="1rem" />
<a href="#">post3.md</a>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuAction>
<MoreHorizontal />
</SidebarMenuAction>
</DropdownMenuTrigger>
<DropdownMenuContent side="right" align="start">
<DropdownMenuItem>
<Pencil />
Edit
</DropdownMenuItem>
<DropdownMenuItem>
<FolderPen />
Rename or Move
</DropdownMenuItem>
<DropdownMenuItem>
<Trash />
Delete
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
</SidebarMenuButton>
<SidebarMenuButton className="relative">
<FileJson size="1rem" />
<a href="#">.reproserc.json</a>{" "}
<span className="text-gray-400">Settings</span>
{/* <DropdownMenu>
<DropdownMenuTrigger asChild>
<SidebarMenuAction>
<MoreHorizontal />
</SidebarMenuAction>
</DropdownMenuTrigger>
<DropdownMenuContent side="right" align="start">
<DropdownMenuItem>Add settings</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu> */}
</SidebarMenuButton>
</SidebarGroupContent>
</SidebarGroup>
</SidebarContent>
</Sidebar>
);
}
14 changes: 0 additions & 14 deletions _frontend/components/app/app.js

This file was deleted.

64 changes: 64 additions & 0 deletions _frontend/components/ui/accordion.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import * as React from "react"
import * as AccordionPrimitive from "@radix-ui/react-accordion"
import { ChevronDownIcon } from "lucide-react"

import { cn } from "@/lib/utils"

function Accordion({
...props
}: React.ComponentProps<typeof AccordionPrimitive.Root>) {
return <AccordionPrimitive.Root data-slot="accordion" {...props} />
}

function AccordionItem({
className,
...props
}: React.ComponentProps<typeof AccordionPrimitive.Item>) {
return (
<AccordionPrimitive.Item
data-slot="accordion-item"
className={cn("border-b last:border-b-0", className)}
{...props}
/>
)
}

function AccordionTrigger({
className,
children,
...props
}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {
return (
<AccordionPrimitive.Header className="flex">
<AccordionPrimitive.Trigger
data-slot="accordion-trigger"
className={cn(
"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
className
)}
{...props}
>
{children}
<ChevronDownIcon className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
)
}

function AccordionContent({
className,
children,
...props
}: React.ComponentProps<typeof AccordionPrimitive.Content>) {
return (
<AccordionPrimitive.Content
data-slot="accordion-content"
className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
{...props}
>
<div className={cn("pt-0 pb-4", className)}>{children}</div>
</AccordionPrimitive.Content>
)
}

export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
Loading