@avament-pub/support-navbar-create 0.1.0 → 0.2.0

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/README.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # `@avament-pub/support-navbar-create`
2
2
 
3
- Lightweight support ticket create dialog for module navbars (`onSupportClick` on `@avament-pub/navbar-ui`).
3
+ Full **Support** `CreateTicketDialog` (same UI as `support-frontend`) for module navbars.
4
4
 
5
- The Support app should use its full `CreateTicketDialog` instead. Other modules pass `getAccessToken` and `apiBaseUrl` (same auth as the host app).
5
+ ## Usage
6
+
7
+ Host must provide `QueryClientProvider` and `react-i18next` (with `ticket.create_dialog.*` keys).
8
+
9
+ ```tsx
10
+ import { useSupportNavbarCreateTicket } from "@avament-pub/support-navbar-create";
11
+
12
+ const { onSupportClick, dialog } = useSupportNavbarCreateTicket({
13
+ apiBaseUrl: process.env.NEXT_PUBLIC_API_URL!,
14
+ getAccessToken: () => storageService.getString(STORAGE_KEYS.ACCESS_TOKEN),
15
+ });
16
+
17
+ <Navbar onSupportClick={onSupportClick} />
18
+ {dialog}
19
+ ```
20
+
21
+ Calls `/api/support/tickets` with the same role-based field visibility as Support.
package/dist/index.d.ts CHANGED
@@ -1,33 +1,34 @@
1
1
  import * as React from 'react';
2
2
 
3
- type SupportNavbarCreateDialogLabels = {
4
- title: string;
5
- shortLabel: string;
6
- detailsLabel: string;
7
- submit: string;
8
- cancel: string;
9
- shortRequired: string;
10
- submitError: string;
11
- };
12
- type SupportNavbarCreateDialogProps = {
3
+ type CreateTicketDialogProps = {
13
4
  open: boolean;
14
5
  onOpenChange: (open: boolean) => void;
6
+ /** When set, dialog opens in edit mode for this ticket. */
7
+ ticketId?: string | null;
8
+ allowKeepAdding?: boolean;
9
+ onSaved?: () => void;
10
+ };
11
+
12
+ declare function CreateTicketDialog({ open, onOpenChange, ticketId, allowKeepAdding, onSaved, }: CreateTicketDialogProps): React.JSX.Element;
13
+
14
+ type SupportApiRuntime = {
15
15
  apiBaseUrl: string;
16
16
  getAccessToken: () => string | null;
17
- labels: SupportNavbarCreateDialogLabels;
18
17
  };
19
- declare function SupportNavbarCreateDialog({ open, onOpenChange, apiBaseUrl, getAccessToken, labels, }: SupportNavbarCreateDialogProps): React.JSX.Element | null;
18
+
19
+ declare function SupportApiRuntimeProvider({ apiBaseUrl, getAccessToken, children, }: SupportApiRuntime & {
20
+ children: React.ReactNode;
21
+ }): React.JSX.Element;
20
22
 
21
23
  type UseSupportNavbarCreateTicketOptions = {
22
24
  apiBaseUrl: string;
23
25
  getAccessToken: () => string | null;
24
- labels: SupportNavbarCreateDialogLabels;
25
26
  };
26
- declare function useSupportNavbarCreateTicket({ apiBaseUrl, getAccessToken, labels, }: UseSupportNavbarCreateTicketOptions): {
27
+ declare function useSupportNavbarCreateTicket({ apiBaseUrl, getAccessToken, }: UseSupportNavbarCreateTicketOptions): {
27
28
  onSupportClick: () => void;
28
- dialog: React.JSX.Element;
29
+ dialog: React.JSX.Element | null;
29
30
  open: boolean;
30
31
  setOpen: React.Dispatch<React.SetStateAction<boolean>>;
31
32
  };
32
33
 
33
- export { SupportNavbarCreateDialog, type SupportNavbarCreateDialogLabels, type SupportNavbarCreateDialogProps, useSupportNavbarCreateTicket };
34
+ export { CreateTicketDialog, type CreateTicketDialogProps, SupportApiRuntimeProvider, type UseSupportNavbarCreateTicketOptions, useSupportNavbarCreateTicket };