-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b8a04da
commit 485e011
Showing
10 changed files
with
429 additions
and
420 deletions.
There are no files selected for viewing
126 changes: 64 additions & 62 deletions
126
frontend/app/components/marketplace/products-pagination.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,70 +1,72 @@ | ||
import { | ||
Pagination, | ||
PaginationContent, | ||
PaginationItem, | ||
PaginationPrevious, | ||
PaginationLink, | ||
PaginationEllipsis, | ||
PaginationNext, | ||
Pagination, | ||
PaginationContent, | ||
PaginationEllipsis, | ||
PaginationItem, | ||
PaginationLink, | ||
PaginationNext, | ||
PaginationPrevious, | ||
} from "../ui/pagination"; | ||
import { | ||
Select, | ||
SelectContent, | ||
SelectGroup, | ||
SelectItem, | ||
SelectTrigger, | ||
SelectValue, | ||
Select, | ||
SelectContent, | ||
SelectGroup, | ||
SelectItem, | ||
SelectTrigger, | ||
SelectValue, | ||
} from "../ui/select"; | ||
|
||
export const ProductsPagination = () => { | ||
return ( | ||
<section className="w-full pb-10 mt-2 flex flex-col justify-center items-start gap-5 | ||
md:flex-row md:items-center md:gap-0 md:max-w-2xl lg:max-w-3xl xl:max-w-4xl 2xl:max-w-5xl"> | ||
<div className="w-full gap-2 flex justify-center items-center md:w-[50%] md:justify-start"> | ||
<label className="opacity-80">Show result:</label> | ||
<Select> | ||
<SelectTrigger className="w-[70px]"> | ||
<SelectValue placeholder="10" /> | ||
</SelectTrigger> | ||
<SelectContent className="min-w-[70px]"> | ||
<SelectGroup> | ||
<SelectItem value="10">10</SelectItem> | ||
<SelectItem value="20">20</SelectItem> | ||
<SelectItem value="30">30</SelectItem> | ||
<SelectItem value="40">40</SelectItem> | ||
<SelectItem value="50">50</SelectItem> | ||
</SelectGroup> | ||
</SelectContent> | ||
</Select> | ||
</div> | ||
return ( | ||
<section | ||
className="w-full pb-10 mt-2 flex flex-col justify-center items-start gap-5 | ||
md:flex-row md:items-center md:gap-0 md:max-w-2xl lg:max-w-3xl xl:max-w-4xl 2xl:max-w-5xl" | ||
> | ||
<div className="w-full gap-2 flex justify-center items-center md:w-[50%] md:justify-start"> | ||
<label className="opacity-80">Show result:</label> | ||
<Select> | ||
<SelectTrigger className="w-[70px]"> | ||
<SelectValue placeholder="10" /> | ||
</SelectTrigger> | ||
<SelectContent className="min-w-[70px]"> | ||
<SelectGroup> | ||
<SelectItem value="10">10</SelectItem> | ||
<SelectItem value="20">20</SelectItem> | ||
<SelectItem value="30">30</SelectItem> | ||
<SelectItem value="40">40</SelectItem> | ||
<SelectItem value="50">50</SelectItem> | ||
</SelectGroup> | ||
</SelectContent> | ||
</Select> | ||
</div> | ||
|
||
<div className="w-full md:w-[50%]"> | ||
<Pagination> | ||
<PaginationContent> | ||
<PaginationItem> | ||
<PaginationPrevious href="#" /> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">1</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">2</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">3</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">4</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationEllipsis /> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationNext href="#" /> | ||
</PaginationItem> | ||
</PaginationContent> | ||
</Pagination> | ||
</div> | ||
</section> | ||
); | ||
<div className="w-full md:w-[50%]"> | ||
<Pagination> | ||
<PaginationContent> | ||
<PaginationItem> | ||
<PaginationPrevious href="#" /> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">1</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">2</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">3</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationLink href="#">4</PaginationLink> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationEllipsis /> | ||
</PaginationItem> | ||
<PaginationItem> | ||
<PaginationNext href="#" /> | ||
</PaginationItem> | ||
</PaginationContent> | ||
</Pagination> | ||
</div> | ||
</section> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,57 @@ | ||
import * as React from "react" | ||
import { Slot } from "@radix-ui/react-slot" | ||
import { cva, type VariantProps } from "class-variance-authority" | ||
import { Slot } from "@radix-ui/react-slot"; | ||
import { type VariantProps, cva } from "class-variance-authority"; | ||
import * as React from "react"; | ||
|
||
import { cn } from "@/lib/utils" | ||
import { cn } from "@/lib/utils"; | ||
|
||
const buttonVariants = cva( | ||
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", | ||
{ | ||
variants: { | ||
variant: { | ||
default: | ||
"bg-primary text-primary-foreground shadow hover:bg-primary/90", | ||
destructive: | ||
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", | ||
outline: | ||
"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", | ||
secondary: | ||
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", | ||
ghost: "hover:bg-accent hover:text-accent-foreground", | ||
link: "text-primary underline-offset-4 hover:underline", | ||
}, | ||
size: { | ||
default: "h-9 px-4 py-2", | ||
sm: "h-8 rounded-md px-3 text-xs", | ||
lg: "h-10 rounded-md px-8", | ||
icon: "h-9 w-9", | ||
}, | ||
}, | ||
defaultVariants: { | ||
variant: "default", | ||
size: "default", | ||
}, | ||
} | ||
) | ||
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", | ||
{ | ||
variants: { | ||
variant: { | ||
default: | ||
"bg-primary text-primary-foreground shadow hover:bg-primary/90", | ||
destructive: | ||
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", | ||
outline: | ||
"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", | ||
secondary: | ||
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", | ||
ghost: "hover:bg-accent hover:text-accent-foreground", | ||
link: "text-primary underline-offset-4 hover:underline", | ||
}, | ||
size: { | ||
default: "h-9 px-4 py-2", | ||
sm: "h-8 rounded-md px-3 text-xs", | ||
lg: "h-10 rounded-md px-8", | ||
icon: "h-9 w-9", | ||
}, | ||
}, | ||
defaultVariants: { | ||
variant: "default", | ||
size: "default", | ||
}, | ||
}, | ||
); | ||
|
||
export interface ButtonProps | ||
extends React.ButtonHTMLAttributes<HTMLButtonElement>, | ||
VariantProps<typeof buttonVariants> { | ||
asChild?: boolean | ||
extends React.ButtonHTMLAttributes<HTMLButtonElement>, | ||
VariantProps<typeof buttonVariants> { | ||
asChild?: boolean; | ||
} | ||
|
||
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>( | ||
({ className, variant, size, asChild = false, ...props }, ref) => { | ||
const Comp = asChild ? Slot : "button" | ||
return ( | ||
<Comp | ||
className={cn(buttonVariants({ variant, size, className }))} | ||
ref={ref} | ||
{...props} | ||
/> | ||
) | ||
} | ||
) | ||
Button.displayName = "Button" | ||
({ className, variant, size, asChild = false, ...props }, ref) => { | ||
const Comp = asChild ? Slot : "button"; | ||
return ( | ||
<Comp | ||
className={cn(buttonVariants({ variant, size, className }))} | ||
ref={ref} | ||
{...props} | ||
/> | ||
); | ||
}, | ||
); | ||
Button.displayName = "Button"; | ||
|
||
export { Button, buttonVariants } | ||
export { Button, buttonVariants }; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.