This commit is contained in:
David Arranz 2024-08-28 14:30:28 +02:00
parent 9011e99a31
commit 313659689e
4 changed files with 51 additions and 57 deletions

View File

@ -1,11 +1,4 @@
import { import { CreditCard, DownloadIcon, FilePenLineIcon, MoreVertical } from "lucide-react";
ChevronLeft,
ChevronRight,
CreditCard,
DownloadIcon,
FilePenLineIcon,
MoreVertical,
} from "lucide-react";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import { import {
@ -19,11 +12,7 @@ import {
DropdownMenu, DropdownMenu,
DropdownMenuContent, DropdownMenuContent,
DropdownMenuItem, DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger, DropdownMenuTrigger,
Pagination,
PaginationContent,
PaginationItem,
Separator, Separator,
Tabs, Tabs,
TabsContent, TabsContent,
@ -102,7 +91,7 @@ export const QuoteResume = ({ quoteId, className }: QuoteResumeProps) => {
<DownloadQuoteDialog {...downloadProps} onFinishDownload={handleFinishDownload} /> <DownloadQuoteDialog {...downloadProps} onFinishDownload={handleFinishDownload} />
<Tabs defaultValue='resume'> <Tabs defaultValue='resume'>
<Card className='w-full overflow-hidden'> <Card className='w-full overflow-hidden'>
<CardHeader className='gap-3 border-b'> <CardHeader className='gap-3 border-b bg-accent'>
<CardTitle className='text-lg'> <CardTitle className='text-lg'>
{`${t("quotes.list.preview.quote")} #${data.reference}`} {`${t("quotes.list.preview.quote")} #${data.reference}`}
</CardTitle> </CardTitle>
@ -141,7 +130,7 @@ export const QuoteResume = ({ quoteId, className }: QuoteResumeProps) => {
<DropdownMenuTrigger> <DropdownMenuTrigger>
<Tooltip> <Tooltip>
<TooltipTrigger asChild> <TooltipTrigger asChild>
<Button size='icon' variant='outline' className='w-8 h-8'> <Button size='icon' variant='outline' className='hidden w-8 h-8'>
<MoreVertical className='h-3.5 w-3.5' /> <MoreVertical className='h-3.5 w-3.5' />
<span className='sr-only'>{t("common.more")}</span> <span className='sr-only'>{t("common.more")}</span>
</Button> </Button>
@ -154,9 +143,6 @@ export const QuoteResume = ({ quoteId, className }: QuoteResumeProps) => {
<DownloadIcon className='h-3.5 w-3.5 mr-2' /> <DownloadIcon className='h-3.5 w-3.5 mr-2' />
<span>{t("quotes.list.preview.download_quote")}</span> <span>{t("quotes.list.preview.download_quote")}</span>
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem>Export</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>Trash</DropdownMenuItem>
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
</CardDescription> </CardDescription>
@ -284,24 +270,8 @@ export const QuoteResume = ({ quoteId, className }: QuoteResumeProps) => {
</TabsContent> </TabsContent>
<TabsContent value='preview'></TabsContent> <TabsContent value='preview'></TabsContent>
</CardContent> </CardContent>
<CardFooter className='flex flex-row items-center px-6 py-3 border-t'> <CardFooter className='flex flex-row items-center px-6 py-3 border-t bg-accent'>
<div className='text-xs text-muted-foreground'>Updated...</div> <div className='text-xs text-muted-foreground'>Updated...</div>
<Pagination className='w-auto ml-auto mr-0'>
<PaginationContent>
<PaginationItem>
<Button size='icon' variant='outline' className='w-6 h-6'>
<ChevronLeft className='h-3.5 w-3.5' />
<span className='sr-only'>Previous Order</span>
</Button>
</PaginationItem>
<PaginationItem>
<Button size='icon' variant='outline' className='w-6 h-6'>
<ChevronRight className='h-3.5 w-3.5' />
<span className='sr-only'>Next Order</span>
</Button>
</PaginationItem>
</PaginationContent>
</Pagination>
</CardFooter> </CardFooter>
</Card> </Card>
</Tabs> </Tabs>

View File

@ -1,3 +1,4 @@
import { cn } from "@/lib/utils";
import { import {
Button, Button,
Dialog, Dialog,
@ -71,29 +72,34 @@ export const QuoteStatusEditor = ({
<DialogDescription></DialogDescription> <DialogDescription></DialogDescription>
<div className='grid gap-4 py-4'> <div className='grid gap-4 py-4'>
{QuoteStatus.map((_status) => ( {QuoteStatus.map((_status) => {
<div key={_status} className='flex items-start space-x-4'> const isDisabled = !quoteStatusTransitions[quote.status as TQuoteStatus].includes(
<Switch _status as TQuoteStatus
id={_status} );
checked={newStatus === _status}
onCheckedChange={() => changeStatus(_status)}
disabled={
!quoteStatusTransitions[quote.status as TQuoteStatus].includes(
_status as TQuoteStatus
)
}
/>
<div className='grid gap-1.5 leading-none'> return (
<Label htmlFor={_status} className='font-medium'> <div key={_status} className='flex items-start space-x-4'>
{t(`quotes.quote_status_editor.status.${_status}.title`)} <Switch
</Label> id={_status}
<p className='text-sm text-muted-foreground'> checked={newStatus === _status}
{t(`quotes.quote_status_editor.status.${_status}.description`)} onCheckedChange={() => changeStatus(_status)}
</p> disabled={isDisabled}
/>
<div className='grid gap-1.5 leading-none'>
<Label
htmlFor={_status}
className={cn("font-medium", isDisabled ? "text-input" : "text-foreground")}
>
{t(`quotes.quote_status_editor.status.${_status}.title`)}
</Label>
<p className={cn("text-sm", isDisabled ? "text-input" : "text-muted-foreground")}>
{t(`quotes.quote_status_editor.status.${_status}.description`)}
</p>
</div>
</div> </div>
</div> );
))} })}
</div> </div>
<DialogFooter className='pt-6 border-t'> <DialogFooter className='pt-6 border-t'>

View File

@ -1,5 +1,5 @@
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
import { Button } from "@/ui"; import { Button, Pagination, PaginationContent, PaginationItem } from "@/ui";
import { useResizeObserver } from "@wojtekmaj/react-hooks"; import { useResizeObserver } from "@wojtekmaj/react-hooks";
import { t } from "i18next"; import { t } from "i18next";
import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
@ -132,6 +132,23 @@ export const PDFViewer = ({ file, onThumbnailClick, className }: PDFViewerProps)
/> />
</Document> </Document>
<Pagination className='w-auto ml-auto mr-0'>
<PaginationContent>
<PaginationItem>
<Button size='icon' variant='outline' className='w-6 h-6'>
<ChevronLeftIcon className='h-3.5 w-3.5' />
<span className='sr-only'>Previous Order</span>
</Button>
</PaginationItem>
<PaginationItem>
<Button size='icon' variant='outline' className='w-6 h-6'>
<ChevronRightIcon className='h-3.5 w-3.5' />
<span className='sr-only'>Next Order</span>
</Button>
</PaginationItem>
</PaginationContent>
</Pagination>
<div className='flex flex-row justify-center w-full mt-4 space-x-4'> <div className='flex flex-row justify-center w-full mt-4 space-x-4'>
<Button <Button
type='button' type='button'

View File

@ -138,6 +138,7 @@
"edit": "Edit quote" "edit": "Edit quote"
} }
}, },
"resume": {},
"preview": { "preview": {
"quote": "Quote", "quote": "Quote",
"download_quote": "Download quote" "download_quote": "Download quote"
@ -199,7 +200,7 @@
"toast_article_added": "Catalog item added:" "toast_article_added": "Catalog item added:"
}, },
"quote_status_editor": { "quote_status_editor": {
"remove the res": "Change quote status", "trigger_button": "Change quote status",
"title": "Change quote status", "title": "Change quote status",
"status": { "status": {
"draft": { "draft": {