@spaceinvoices/react-ui 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/common/autocomplete.tsx +18 -2
- package/src/components/advance-invoices/create/create-advance-invoice-form.tsx +0 -1
- package/src/components/advance-invoices/create/locales/de.ts +2 -0
- package/src/components/advance-invoices/create/locales/es.ts +2 -0
- package/src/components/advance-invoices/create/locales/fr.ts +2 -0
- package/src/components/advance-invoices/create/locales/hr.ts +1 -0
- package/src/components/advance-invoices/create/locales/it.ts +2 -0
- package/src/components/advance-invoices/create/locales/nl.ts +2 -0
- package/src/components/advance-invoices/create/locales/pl.ts +1 -0
- package/src/components/advance-invoices/create/locales/pt.ts +1 -0
- package/src/components/advance-invoices/create/locales/sl.ts +1 -0
- package/src/components/advance-invoices/create/prepare-advance-invoice-submission.ts +0 -1
- package/src/components/advance-invoices/list/list-table.tsx +80 -50
- package/src/components/advance-invoices/list/locales/de.ts +5 -0
- package/src/components/advance-invoices/list/locales/en.ts +4 -0
- package/src/components/advance-invoices/list/locales/es.ts +5 -0
- package/src/components/advance-invoices/list/locales/fr.ts +5 -0
- package/src/components/advance-invoices/list/locales/hr.ts +5 -0
- package/src/components/advance-invoices/list/locales/it.ts +5 -0
- package/src/components/advance-invoices/list/locales/nl.ts +5 -0
- package/src/components/advance-invoices/list/locales/pl.ts +5 -0
- package/src/components/advance-invoices/list/locales/pt.ts +5 -0
- package/src/components/advance-invoices/list/locales/sl.ts +5 -0
- package/src/components/credit-notes/create/create-credit-note-form.tsx +114 -3
- package/src/components/credit-notes/create/locales/de.ts +2 -0
- package/src/components/credit-notes/create/locales/es.ts +2 -0
- package/src/components/credit-notes/create/locales/fr.ts +2 -0
- package/src/components/credit-notes/create/locales/hr.ts +1 -0
- package/src/components/credit-notes/create/locales/it.ts +2 -0
- package/src/components/credit-notes/create/locales/nl.ts +2 -0
- package/src/components/credit-notes/create/locales/pl.ts +1 -0
- package/src/components/credit-notes/create/locales/pt.ts +1 -0
- package/src/components/credit-notes/create/locales/sl.ts +1 -0
- package/src/components/credit-notes/credit-notes.hooks.ts +30 -0
- package/src/components/credit-notes/list/list-table.tsx +77 -30
- package/src/components/credit-notes/list/locales/de.ts +5 -0
- package/src/components/credit-notes/list/locales/en.ts +4 -0
- package/src/components/credit-notes/list/locales/es.ts +5 -0
- package/src/components/credit-notes/list/locales/fr.ts +5 -0
- package/src/components/credit-notes/list/locales/hr.ts +5 -0
- package/src/components/credit-notes/list/locales/it.ts +5 -0
- package/src/components/credit-notes/list/locales/nl.ts +5 -0
- package/src/components/credit-notes/list/locales/pl.ts +5 -0
- package/src/components/credit-notes/list/locales/pt.ts +5 -0
- package/src/components/credit-notes/list/locales/sl.ts +5 -0
- package/src/components/customers/customer-list-table/customer-list-table.tsx +0 -3
- package/src/components/customers/customer-list-table/locales/de.ts +1 -0
- package/src/components/customers/customer-list-table/locales/es.ts +1 -0
- package/src/components/customers/customer-list-table/locales/fr.ts +1 -0
- package/src/components/customers/customer-list-table/locales/hr.ts +1 -0
- package/src/components/customers/customer-list-table/locales/it.ts +1 -0
- package/src/components/customers/customer-list-table/locales/nl.ts +1 -0
- package/src/components/customers/customer-list-table/locales/pl.ts +1 -0
- package/src/components/customers/customer-list-table/locales/pt.ts +1 -0
- package/src/components/customers/customer-list-table/locales/sl.ts +1 -0
- package/src/components/delivery-notes/list/list-row-actions.tsx +20 -1
- package/src/components/delivery-notes/list/list-table.tsx +41 -8
- package/src/components/delivery-notes/list/locales/de.ts +4 -0
- package/src/components/delivery-notes/list/locales/en.ts +2 -0
- package/src/components/delivery-notes/list/locales/es.ts +4 -0
- package/src/components/delivery-notes/list/locales/fr.ts +4 -0
- package/src/components/delivery-notes/list/locales/hr.ts +4 -0
- package/src/components/delivery-notes/list/locales/it.ts +4 -0
- package/src/components/delivery-notes/list/locales/nl.ts +4 -0
- package/src/components/delivery-notes/list/locales/pl.ts +4 -0
- package/src/components/delivery-notes/list/locales/pt.ts +4 -0
- package/src/components/delivery-notes/list/locales/sl.ts +4 -0
- package/src/components/documents/create/document-details-section.tsx +41 -27
- package/src/components/documents/create/linked-documents-info.tsx +82 -0
- package/src/components/documents/create/live-preview.tsx +1 -1
- package/src/components/documents/types.ts +2 -2
- package/src/components/documents/view/document-activities-list.tsx +65 -47
- package/src/components/documents/view/document-details-card.tsx +99 -74
- package/src/components/documents/view/document-payments-list.tsx +99 -65
- package/src/components/documents/view/document-relations-list.tsx +43 -28
- package/src/components/documents/view/document-sidebar.tsx +151 -0
- package/src/components/documents/view/index.ts +2 -0
- package/src/components/documents/view/locales/de.ts +2 -0
- package/src/components/documents/view/locales/es.ts +2 -0
- package/src/components/documents/view/locales/fr.ts +2 -0
- package/src/components/documents/view/locales/hr.ts +2 -0
- package/src/components/documents/view/locales/it.ts +2 -0
- package/src/components/documents/view/locales/nl.ts +2 -0
- package/src/components/documents/view/locales/pl.ts +2 -0
- package/src/components/documents/view/locales/pt.ts +2 -0
- package/src/components/documents/view/locales/sl.ts +2 -0
- package/src/components/documents/view/use-document-download.ts +3 -2
- package/src/components/entities/create-entity-form.tsx +165 -13
- package/src/components/entities/entity-settings-form/entity-settings-form.tsx +101 -1
- package/src/components/entities/entity-settings-form/locales/de.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/es.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/fr.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/hr.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/it.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/nl.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/pl.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/pt.ts +9 -0
- package/src/components/entities/entity-settings-form/locales/sl.ts +9 -0
- package/src/components/entities/fina-settings-form/fina-settings-form.tsx +6 -6
- package/src/components/entities/fina-settings-form/locales/de.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/en.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/es.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/fr.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/hr.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/it.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/nl.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/pl.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/pt.ts +2 -2
- package/src/components/entities/fina-settings-form/locales/sl.ts +2 -2
- package/src/components/entities/furs-settings-form/locales/en.ts +0 -1
- package/src/components/entities/settings/pdf-template-selector/locales/de.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/es.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/fr.ts +4 -1
- package/src/components/entities/settings/pdf-template-selector/locales/hr.ts +4 -1
- package/src/components/entities/settings/pdf-template-selector/locales/it.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/nl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/pl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/pt.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/locales/sl.ts +3 -1
- package/src/components/entities/settings/pdf-template-selector/pdf-template-cards.tsx +1 -0
- package/src/components/estimates/create/create-estimate-form.tsx +29 -2
- package/src/components/estimates/list/list-table.tsx +3 -6
- package/src/components/estimates/list/locales/de.ts +1 -0
- package/src/components/estimates/list/locales/es.ts +1 -0
- package/src/components/estimates/list/locales/fr.ts +1 -0
- package/src/components/estimates/list/locales/hr.ts +1 -0
- package/src/components/estimates/list/locales/it.ts +1 -0
- package/src/components/estimates/list/locales/nl.ts +1 -0
- package/src/components/estimates/list/locales/pl.ts +1 -0
- package/src/components/estimates/list/locales/pt.ts +1 -0
- package/src/components/estimates/list/locales/sl.ts +1 -0
- package/src/components/export/document-export-form.tsx +9 -2
- package/src/components/export/index.ts +2 -0
- package/src/components/export/sales-per-item-export-form.tsx +223 -0
- package/src/components/invoices/create/create-invoice-form.tsx +48 -1
- package/src/components/invoices/create/locales/de.ts +11 -0
- package/src/components/invoices/create/locales/es.ts +11 -0
- package/src/components/invoices/create/locales/fr.ts +11 -0
- package/src/components/invoices/create/locales/hr.ts +10 -0
- package/src/components/invoices/create/locales/it.ts +11 -0
- package/src/components/invoices/create/locales/nl.ts +11 -0
- package/src/components/invoices/create/locales/pl.ts +10 -0
- package/src/components/invoices/create/locales/pt.ts +10 -0
- package/src/components/invoices/create/locales/sl.ts +10 -0
- package/src/components/invoices/invoices-furs.hooks.ts +4 -1
- package/src/components/invoices/list/list-table.tsx +77 -31
- package/src/components/invoices/list/locales/de.ts +5 -0
- package/src/components/invoices/list/locales/en.ts +4 -0
- package/src/components/invoices/list/locales/es.ts +5 -0
- package/src/components/invoices/list/locales/fr.ts +5 -0
- package/src/components/invoices/list/locales/hr.ts +5 -0
- package/src/components/invoices/list/locales/it.ts +5 -0
- package/src/components/invoices/list/locales/nl.ts +5 -0
- package/src/components/invoices/list/locales/pl.ts +5 -0
- package/src/components/invoices/list/locales/pt.ts +5 -0
- package/src/components/invoices/list/locales/sl.ts +5 -0
- package/src/components/invoices/view/fiscalization-status-card.tsx +42 -24
- package/src/components/items/item-combobox.tsx +5 -3
- package/src/components/items/item-list-table/item-list-header.tsx +4 -17
- package/src/components/items/item-list-table/item-list-table.tsx +3 -3
- package/src/components/items/item-list-table/locales/de.ts +1 -0
- package/src/components/items/item-list-table/locales/es.ts +1 -0
- package/src/components/items/item-list-table/locales/fr.ts +1 -0
- package/src/components/items/item-list-table/locales/hr.ts +1 -0
- package/src/components/items/item-list-table/locales/it.ts +1 -0
- package/src/components/items/item-list-table/locales/nl.ts +1 -0
- package/src/components/items/item-list-table/locales/pl.ts +1 -0
- package/src/components/items/item-list-table/locales/pt.ts +1 -0
- package/src/components/items/item-list-table/locales/sl.ts +1 -0
- package/src/components/payments/list/list-table.tsx +0 -4
- package/src/components/payments/list/locales/de.ts +1 -0
- package/src/components/payments/list/locales/es.ts +1 -0
- package/src/components/payments/list/locales/fr.ts +1 -0
- package/src/components/payments/list/locales/hr.ts +1 -0
- package/src/components/payments/list/locales/it.ts +1 -0
- package/src/components/payments/list/locales/nl.ts +1 -0
- package/src/components/payments/list/locales/pl.ts +1 -0
- package/src/components/payments/list/locales/pt.ts +1 -0
- package/src/components/payments/list/locales/sl.ts +1 -0
- package/src/components/recurring-invoices/list/list-table.tsx +0 -7
- package/src/components/recurring-invoices/list/locales/de.ts +1 -0
- package/src/components/recurring-invoices/list/locales/es.ts +1 -0
- package/src/components/recurring-invoices/list/locales/fr.ts +1 -0
- package/src/components/recurring-invoices/list/locales/hr.ts +1 -0
- package/src/components/recurring-invoices/list/locales/it.ts +1 -0
- package/src/components/recurring-invoices/list/locales/nl.ts +1 -0
- package/src/components/recurring-invoices/list/locales/pl.ts +1 -0
- package/src/components/recurring-invoices/list/locales/pt.ts +1 -0
- package/src/components/recurring-invoices/list/locales/sl.ts +1 -0
- package/src/components/request-logs/request-log-list-table.tsx +0 -3
- package/src/components/table/README.md +14 -121
- package/src/components/table/data-table.tsx +22 -37
- package/src/components/table/hooks/use-table-state.ts +3 -27
- package/src/components/table/index.ts +0 -2
- package/src/components/table/selection-toolbar.tsx +35 -1
- package/src/components/table/table-empty-state.tsx +6 -3
- package/src/components/table/table-no-results.tsx +10 -5
- package/src/components/table/types.ts +0 -5
- package/src/components/taxes/tax-list-table/locales/de.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/es.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/fr.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/hr.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/it.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/nl.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/pl.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/pt.ts +1 -0
- package/src/components/taxes/tax-list-table/locales/sl.ts +1 -0
- package/src/components/taxes/tax-list-table/tax-list-header.tsx +3 -14
- package/src/components/taxes/tax-list-table/tax-list-table.tsx +3 -3
- package/src/components/ui/popover.tsx +3 -1
- package/src/components/ui/tooltip.tsx +3 -1
- package/src/generated/schemas/index.ts +1 -1
- package/src/hooks/use-duplicate-document.ts +40 -5
- package/src/lib/fiscalization.ts +12 -0
- package/src/lib/schemas/advance-invoice.ts +0 -1
- package/src/components/table/sortable-header.tsx +0 -56
|
@@ -32,7 +32,7 @@ export function getDocumentTypeFromId(id: string): DocumentType | null {
|
|
|
32
32
|
if (id.startsWith("est_")) return "estimate";
|
|
33
33
|
if (id.startsWith("cn_")) return "credit_note";
|
|
34
34
|
if (id.startsWith("adv_")) return "advance_invoice";
|
|
35
|
-
if (id.startsWith("
|
|
35
|
+
if (id.startsWith("del_")) return "delivery_note";
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -50,7 +50,7 @@ export function getAllowedDuplicateTargets(sourceType: DocumentType): DocumentTy
|
|
|
50
50
|
case "advance_invoice":
|
|
51
51
|
return ["advance_invoice", "invoice"];
|
|
52
52
|
case "delivery_note":
|
|
53
|
-
return ["delivery_note"];
|
|
53
|
+
return ["delivery_note", "invoice"];
|
|
54
54
|
default:
|
|
55
55
|
return [];
|
|
56
56
|
}
|
|
@@ -60,7 +60,7 @@ export function getAllowedDuplicateTargets(sourceType: DocumentType): DocumentTy
|
|
|
60
60
|
* Transform a source document into form-compatible initial values
|
|
61
61
|
* Copies relevant fields and resets computed/generated ones
|
|
62
62
|
*/
|
|
63
|
-
function transformDocumentForDuplication(source: Document,
|
|
63
|
+
function transformDocumentForDuplication(source: Document, targetType: DocumentType): Partial<CreateRequest> {
|
|
64
64
|
// Transform items - copy only the fields needed for creation
|
|
65
65
|
// Use type assertion for items since all document item types share the same shape
|
|
66
66
|
const sourceItems = source.items as Array<{
|
|
@@ -98,6 +98,10 @@ function transformDocumentForDuplication(source: Document, _targetType: Document
|
|
|
98
98
|
}
|
|
99
99
|
: undefined;
|
|
100
100
|
|
|
101
|
+
// When converting to a different type, link back to the source document
|
|
102
|
+
const sourceType = getDocumentTypeFromId(source.id);
|
|
103
|
+
const isConversion = sourceType && sourceType !== targetType;
|
|
104
|
+
|
|
101
105
|
// Build base duplicate data
|
|
102
106
|
const baseData: Partial<CreateRequest> = {
|
|
103
107
|
// Customer - always pass both customer_id AND customer data when available
|
|
@@ -115,6 +119,8 @@ function transformDocumentForDuplication(source: Document, _targetType: Document
|
|
|
115
119
|
date: new Date().toISOString(),
|
|
116
120
|
// Number - leave empty for auto-generation
|
|
117
121
|
// Do NOT copy: number, totals, taxes, payments, furs, eslog, vies, shareable_id
|
|
122
|
+
// Link back to source document when converting (e.g., delivery note → invoice)
|
|
123
|
+
...(isConversion ? { linked_documents: [source.id] } : {}),
|
|
118
124
|
};
|
|
119
125
|
|
|
120
126
|
return baseData;
|
|
@@ -129,9 +135,20 @@ export type UseDuplicateDocumentOptions = {
|
|
|
129
135
|
enabled?: boolean;
|
|
130
136
|
};
|
|
131
137
|
|
|
138
|
+
export type LinkedDocumentSummary = {
|
|
139
|
+
id: string;
|
|
140
|
+
type: string;
|
|
141
|
+
number: string;
|
|
142
|
+
date: string;
|
|
143
|
+
total_with_tax: number;
|
|
144
|
+
currency_code: string;
|
|
145
|
+
};
|
|
146
|
+
|
|
132
147
|
export type UseDuplicateDocumentResult = {
|
|
133
148
|
/** Transformed initial values for the form */
|
|
134
149
|
initialValues: Partial<CreateRequest> | undefined;
|
|
150
|
+
/** Source documents linked to this document (populated for conversions) */
|
|
151
|
+
sourceDocuments: LinkedDocumentSummary[];
|
|
135
152
|
/** Loading state */
|
|
136
153
|
isLoading: boolean;
|
|
137
154
|
/** Error if fetch failed */
|
|
@@ -187,13 +204,31 @@ export function useDuplicateDocument({
|
|
|
187
204
|
throw new Error("Source document not found");
|
|
188
205
|
}
|
|
189
206
|
|
|
190
|
-
|
|
207
|
+
const initialValues = transformDocumentForDuplication(source, targetType);
|
|
208
|
+
|
|
209
|
+
// Build source document summaries for conversions (different source → target type)
|
|
210
|
+
const isConversion = sourceType !== targetType;
|
|
211
|
+
const sourceDocuments: LinkedDocumentSummary[] = isConversion
|
|
212
|
+
? [
|
|
213
|
+
{
|
|
214
|
+
id: source.id,
|
|
215
|
+
type: sourceType,
|
|
216
|
+
number: (source as any).number || "",
|
|
217
|
+
date: (source as any).date || "",
|
|
218
|
+
total_with_tax: (source as any).total_with_tax ?? 0,
|
|
219
|
+
currency_code: (source as any).currency_code || "",
|
|
220
|
+
},
|
|
221
|
+
]
|
|
222
|
+
: [];
|
|
223
|
+
|
|
224
|
+
return { initialValues, sourceDocuments };
|
|
191
225
|
},
|
|
192
226
|
enabled: enabled && !!sourceId && !!activeEntity?.id && !!sourceType,
|
|
193
227
|
});
|
|
194
228
|
|
|
195
229
|
return {
|
|
196
|
-
initialValues: query.data,
|
|
230
|
+
initialValues: query.data?.initialValues,
|
|
231
|
+
sourceDocuments: query.data?.sourceDocuments ?? [],
|
|
197
232
|
isLoading: query.isLoading,
|
|
198
233
|
error: query.error,
|
|
199
234
|
sourceType,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a document has a failed fiscalization status.
|
|
3
|
+
* Returns the provider type that failed, or null if no failure.
|
|
4
|
+
*/
|
|
5
|
+
export function getFiscalizationFailureType(doc: {
|
|
6
|
+
furs?: { status?: string } | null;
|
|
7
|
+
fina?: { status?: string } | null;
|
|
8
|
+
}): "furs" | "fina" | null {
|
|
9
|
+
if (doc.furs?.status === "failed") return "furs";
|
|
10
|
+
if (doc.fina?.status === "failed") return "fina";
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
@@ -11,7 +11,6 @@ import { customerSchema, lineItemSchema, transformItemsForApi } from "./shared";
|
|
|
11
11
|
export const advanceInvoiceFormSchema = z.object({
|
|
12
12
|
number: z.string().max(100).optional(),
|
|
13
13
|
date: z.string().optional(),
|
|
14
|
-
date_due: z.string().optional(),
|
|
15
14
|
customer_id: z.string().nullish(),
|
|
16
15
|
customer: customerSchema,
|
|
17
16
|
items: z.array(lineItemSchema).min(1),
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { ArrowDown, ArrowUp, ArrowUpDown } from "lucide-react";
|
|
2
|
-
|
|
3
|
-
import { Button } from "@/ui/components/ui/button";
|
|
4
|
-
import { cn } from "@/ui/lib/utils";
|
|
5
|
-
|
|
6
|
-
type SortableHeaderProps = {
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
field: string;
|
|
9
|
-
currentOrder?: string;
|
|
10
|
-
align?: "left" | "center" | "right";
|
|
11
|
-
onSort?: (order: string | null) => void;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Sortable column header with visual indicators
|
|
16
|
-
* Cycles through: none -> asc -> desc -> none
|
|
17
|
-
*/
|
|
18
|
-
export function SortableHeader({ children, field, currentOrder, align = "left", onSort }: SortableHeaderProps) {
|
|
19
|
-
const isActive = currentOrder?.replace(/^-/, "") === field;
|
|
20
|
-
const isDesc = currentOrder?.startsWith("-");
|
|
21
|
-
|
|
22
|
-
// Determine next sort state
|
|
23
|
-
const getNextOrder = () => {
|
|
24
|
-
if (!isActive) return field; // Not active -> ascending
|
|
25
|
-
if (!isDesc) return `-${field}`; // Ascending -> descending
|
|
26
|
-
return null; // Descending -> none
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const nextOrder = getNextOrder();
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<Button
|
|
33
|
-
variant="ghost"
|
|
34
|
-
size="sm"
|
|
35
|
-
onClick={() => onSort?.(nextOrder)}
|
|
36
|
-
className={cn(
|
|
37
|
-
"h-8 gap-1",
|
|
38
|
-
isActive && "font-semibold",
|
|
39
|
-
align === "left" && "-ml-3",
|
|
40
|
-
align === "right" && "-mr-3",
|
|
41
|
-
)}
|
|
42
|
-
aria-label={`Sort by ${field}${isActive ? (isDesc ? " descending" : " ascending") : ""}`}
|
|
43
|
-
>
|
|
44
|
-
{children}
|
|
45
|
-
{isActive ? (
|
|
46
|
-
isDesc ? (
|
|
47
|
-
<ArrowDown className="h-4 w-4" aria-hidden="true" />
|
|
48
|
-
) : (
|
|
49
|
-
<ArrowUp className="h-4 w-4" aria-hidden="true" />
|
|
50
|
-
)
|
|
51
|
-
) : (
|
|
52
|
-
<ArrowUpDown className="h-4 w-4 opacity-50" aria-hidden="true" />
|
|
53
|
-
)}
|
|
54
|
-
</Button>
|
|
55
|
-
);
|
|
56
|
-
}
|