@shahadpichen/docpush 1.0.5 → 1.0.6

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.
@@ -11,11 +11,12 @@ export declare function useDrafts(status?: string): {
11
11
  drafts: Draft[];
12
12
  loading: boolean;
13
13
  error: string | null;
14
+ isSubmitting: boolean;
14
15
  createDraft: (data: {
15
16
  docPath: string;
16
17
  title: string;
17
18
  content?: string;
18
- }) => Promise<Draft>;
19
+ }) => Promise<Draft | null>;
19
20
  updateDraft: (id: string, content: string, message?: string) => Promise<void>;
20
21
  approveDraft: (id: string) => Promise<void>;
21
22
  rejectDraft: (id: string, reason?: string) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-drafts.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-drafts.ts"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM;;;;wBAuBN;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;sBAStD,MAAM,WAAW,MAAM,YAAY,MAAM;uBAQxC,MAAM;sBAKP,MAAM,WAAW,MAAM;;EAkBvD"}
1
+ {"version":3,"file":"use-drafts.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-drafts.ts"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM;;;;;wBAwBN;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;sBAoBtD,MAAM,WAAW,MAAM,YAAY,MAAM;uBAQxC,MAAM;sBAKP,MAAM,WAAW,MAAM;;EAmBvD"}
@@ -42,6 +42,7 @@ function useDrafts(status) {
42
42
  const [drafts, setDrafts] = React.useState([]);
43
43
  const [loading, setLoading] = React.useState(true);
44
44
  const [error, setError] = React.useState(null);
45
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
45
46
  const fetchDrafts = React.useCallback(async () => {
46
47
  setLoading(true);
47
48
  try {
@@ -60,12 +61,23 @@ function useDrafts(status) {
60
61
  fetchDrafts();
61
62
  }, [fetchDrafts]);
62
63
  const createDraft = async (data) => {
63
- const res = await fetcher('/api/drafts', {
64
- method: 'POST',
65
- body: JSON.stringify(data),
66
- });
67
- await fetchDrafts();
68
- return res.draft;
64
+ // Prevent duplicate submissions
65
+ if (isSubmitting) {
66
+ console.warn('Draft submission already in progress');
67
+ return null;
68
+ }
69
+ setIsSubmitting(true);
70
+ try {
71
+ const res = await fetcher('/api/drafts', {
72
+ method: 'POST',
73
+ body: JSON.stringify(data),
74
+ });
75
+ await fetchDrafts();
76
+ return res.draft;
77
+ }
78
+ finally {
79
+ setIsSubmitting(false);
80
+ }
69
81
  };
70
82
  const updateDraft = async (id, content, message) => {
71
83
  await fetcher(`/api/drafts/${id}`, {
@@ -89,6 +101,7 @@ function useDrafts(status) {
89
101
  drafts,
90
102
  loading,
91
103
  error,
104
+ isSubmitting,
92
105
  createDraft,
93
106
  updateDraft,
94
107
  approveDraft,
@@ -1 +1 @@
1
- {"version":3,"file":"use-drafts.js","sourceRoot":"","sources":["../../../src/react/hooks/use-drafts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-drafts.js","sourceRoot":"","sources":["../../../src/react/hooks/use-drafts.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shahadpichen/docpush",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },