@myrjfa/state 2.1.9 → 2.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/dist/hooks/usePersistentDraftState.d.ts +20 -0
- package/dist/hooks/usePersistentDraftState.d.ts.map +1 -0
- package/dist/hooks/usePersistentDraftState.js +47 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/lib/actions/actions.d.ts +17 -19
- package/dist/lib/actions/actions.d.ts.map +1 -1
- package/dist/lib/actions/actions.js +24 -7
- package/dist/lib/actions/auth.d.ts +2 -2
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/auth.js +9 -0
- package/dist/lib/actions/booking.js +2 -2
- package/dist/lib/actions/fetcher.js +2 -1
- package/dist/lib/actions.d.ts +556 -0
- package/dist/lib/actions.d.ts.map +1 -0
- package/dist/lib/actions.js +1327 -0
- package/dist/lib/adminDashboardActions.d.ts +61 -0
- package/dist/lib/adminDashboardActions.d.ts.map +1 -0
- package/dist/lib/adminDashboardActions.js +89 -0
- package/dist/lib/adventureActions.d.ts +102 -0
- package/dist/lib/adventureActions.d.ts.map +1 -0
- package/dist/lib/adventureActions.js +202 -0
- package/dist/lib/adventureDummyData.d.ts +3 -0
- package/dist/lib/adventureDummyData.d.ts.map +1 -0
- package/dist/lib/adventureDummyData.js +138 -0
- package/dist/lib/adventureFormPage.d.ts +39 -0
- package/dist/lib/adventureFormPage.d.ts.map +1 -0
- package/dist/lib/adventureFormPage.js +70 -0
- package/dist/lib/brandActions.d.ts +83 -0
- package/dist/lib/brandActions.d.ts.map +1 -0
- package/dist/lib/brandActions.js +28 -0
- package/dist/lib/companionActions.d.ts +174 -0
- package/dist/lib/companionActions.d.ts.map +1 -0
- package/dist/lib/companionActions.js +276 -0
- package/dist/lib/companionDummyData.d.ts +99 -0
- package/dist/lib/companionDummyData.d.ts.map +1 -0
- package/dist/lib/companionDummyData.js +203 -0
- package/dist/lib/destinations.d.ts +14 -0
- package/dist/lib/destinations.d.ts.map +1 -0
- package/dist/lib/destinations.js +203 -0
- package/dist/lib/entitySubmission.d.ts +21 -0
- package/dist/lib/entitySubmission.d.ts.map +1 -0
- package/dist/lib/entitySubmission.js +10 -0
- package/dist/lib/eventActions.d.ts +176 -0
- package/dist/lib/eventActions.d.ts.map +1 -0
- package/dist/lib/eventActions.js +222 -0
- package/dist/lib/eventFormPage.d.ts +49 -0
- package/dist/lib/eventFormPage.d.ts.map +1 -0
- package/dist/lib/eventFormPage.js +84 -0
- package/dist/lib/eventsDummyData.d.ts +54 -0
- package/dist/lib/eventsDummyData.d.ts.map +1 -0
- package/dist/lib/eventsDummyData.js +586 -0
- package/dist/lib/guideActions.d.ts +53 -0
- package/dist/lib/guideActions.d.ts.map +1 -0
- package/dist/lib/guideActions.js +127 -0
- package/dist/lib/guideDummyData.d.ts +3 -0
- package/dist/lib/guideDummyData.d.ts.map +1 -0
- package/dist/lib/guideDummyData.js +66 -0
- package/dist/lib/hooks/use-mobile.js +0 -1
- package/dist/lib/hooks/useChatSocket.js +0 -1
- package/dist/lib/hooks/useHostCalendarSelection.d.ts +51 -0
- package/dist/lib/hooks/useHostCalendarSelection.d.ts.map +1 -0
- package/dist/lib/hooks/useHostCalendarSelection.js +200 -0
- package/dist/lib/hostDashboardActions.d.ts +189 -0
- package/dist/lib/hostDashboardActions.d.ts.map +1 -0
- package/dist/lib/hostDashboardActions.js +400 -0
- package/dist/lib/imageUpload.d.ts +4 -0
- package/dist/lib/imageUpload.d.ts.map +1 -0
- package/dist/lib/imageUpload.js +36 -0
- package/dist/lib/locationActions.d.ts +141 -0
- package/dist/lib/locationActions.d.ts.map +1 -0
- package/dist/lib/locationActions.js +113 -0
- package/dist/lib/models/adventure.d.ts +26 -9
- package/dist/lib/models/adventure.d.ts.map +1 -1
- package/dist/lib/models/blog.d.ts +2 -2
- package/dist/lib/models/discount.d.ts +160 -0
- package/dist/lib/models/discount.d.ts.map +1 -0
- package/dist/lib/models/discount.js +106 -0
- package/dist/lib/models/enquiry.d.ts +34 -0
- package/dist/lib/models/enquiry.d.ts.map +1 -0
- package/dist/lib/models/enquiry.js +140 -0
- package/dist/lib/models/guide.d.ts +4 -3
- package/dist/lib/models/guide.d.ts.map +1 -1
- package/dist/lib/models/notifications.d.ts +12 -12
- package/dist/lib/models/opportunities/freelance.d.ts +76 -76
- package/dist/lib/models/opportunities/internship.d.ts +76 -76
- package/dist/lib/models/opportunities/job.d.ts +78 -78
- package/dist/lib/models/opportunities/opportunity.d.ts +76 -76
- package/dist/lib/models/opportunities/volunteerJob.d.ts +76 -76
- package/dist/lib/models/package.d.ts +380 -86
- package/dist/lib/models/package.d.ts.map +1 -1
- package/dist/lib/models/package.js +9 -8
- package/dist/lib/models/pricing.d.ts +255 -0
- package/dist/lib/models/pricing.d.ts.map +1 -0
- package/dist/lib/models/pricing.js +145 -0
- package/dist/lib/models/rental.d.ts +12 -7
- package/dist/lib/models/rental.d.ts.map +1 -1
- package/dist/lib/models/review.d.ts +5 -2
- package/dist/lib/models/review.d.ts.map +1 -1
- package/dist/lib/models/stay.d.ts +11 -8
- package/dist/lib/models/stay.d.ts.map +1 -1
- package/dist/lib/models/stay.js +1 -0
- package/dist/lib/models/tile.d.ts +11 -7
- package/dist/lib/models/tile.d.ts.map +1 -1
- package/dist/lib/models/travelPackage.d.ts +943 -0
- package/dist/lib/models/travelPackage.d.ts.map +1 -0
- package/dist/lib/models/travelPackage.js +326 -0
- package/dist/lib/multistepDraft.d.ts +4 -0
- package/dist/lib/multistepDraft.d.ts.map +1 -0
- package/dist/lib/multistepDraft.js +18 -0
- package/dist/lib/opportunityFormData.d.ts +13 -0
- package/dist/lib/opportunityFormData.d.ts.map +1 -0
- package/dist/lib/opportunityFormData.js +62 -0
- package/dist/lib/opportunityFormPage.d.ts +38 -0
- package/dist/lib/opportunityFormPage.d.ts.map +1 -0
- package/dist/lib/opportunityFormPage.js +33 -0
- package/dist/lib/packageActions.d.ts +86 -0
- package/dist/lib/packageActions.d.ts.map +1 -0
- package/dist/lib/packageActions.js +168 -0
- package/dist/lib/packageDummyData.d.ts +3 -0
- package/dist/lib/packageDummyData.d.ts.map +1 -0
- package/dist/lib/packageDummyData.js +57 -0
- package/dist/lib/placeActions.d.ts +192 -0
- package/dist/lib/placeActions.d.ts.map +1 -0
- package/dist/lib/placeActions.js +57 -0
- package/dist/lib/propertyActions.d.ts +17 -0
- package/dist/lib/propertyActions.d.ts.map +1 -0
- package/dist/lib/propertyActions.js +16 -0
- package/dist/lib/rentalActions.d.ts +86 -0
- package/dist/lib/rentalActions.d.ts.map +1 -0
- package/dist/lib/rentalActions.js +235 -0
- package/dist/lib/rentalDummyData.d.ts +3 -0
- package/dist/lib/rentalDummyData.d.ts.map +1 -0
- package/dist/lib/rentalDummyData.js +402 -0
- package/dist/lib/rentalFormPage.d.ts +48 -0
- package/dist/lib/rentalFormPage.d.ts.map +1 -0
- package/dist/lib/rentalFormPage.js +97 -0
- package/dist/lib/roomActions.d.ts +39 -0
- package/dist/lib/roomActions.d.ts.map +1 -0
- package/dist/lib/roomActions.js +74 -0
- package/dist/lib/stayActions.d.ts +97 -0
- package/dist/lib/stayActions.d.ts.map +1 -0
- package/dist/lib/stayActions.js +138 -0
- package/dist/lib/staysDummyData.d.ts +72 -0
- package/dist/lib/staysDummyData.d.ts.map +1 -0
- package/dist/lib/staysDummyData.js +694 -0
- package/dist/lib/storeDummyData.d.ts +33 -0
- package/dist/lib/storeDummyData.d.ts.map +1 -0
- package/dist/lib/storeDummyData.js +336 -0
- package/dist/lib/travelPackageActions.d.ts +102 -0
- package/dist/lib/travelPackageActions.d.ts.map +1 -0
- package/dist/lib/travelPackageActions.js +487 -0
- package/dist/lib/travelPackageFormData.d.ts +20 -0
- package/dist/lib/travelPackageFormData.d.ts.map +1 -0
- package/dist/lib/travelPackageFormData.js +54 -0
- package/dist/lib/travelPackageFormPage.d.ts +32 -0
- package/dist/lib/travelPackageFormPage.d.ts.map +1 -0
- package/dist/lib/travelPackageFormPage.js +43 -0
- package/dist/lib/userAtom.d.ts +32 -32
- package/dist/lib/userAtom.d.ts.map +1 -1
- package/dist/lib/userAtom.js +17 -1
- package/dist/lib/util.d.ts +11 -0
- package/dist/lib/util.d.ts.map +1 -0
- package/dist/lib/util.js +82 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -0
- package/dist/lib/vehicleData.d.ts +2 -0
- package/dist/lib/vehicleData.d.ts.map +1 -0
- package/dist/lib/vehicleData.js +181 -0
- package/dist/lib/vehicleModels.d.ts +2 -0
- package/dist/lib/vehicleModels.d.ts.map +1 -0
- package/dist/lib/vehicleModels.js +128 -0
- package/package.json +6 -5
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
import { del, get, patch, post } from "@myrjfa/state/dist/lib/actions/fetcher";
|
|
2
|
+
import { convertTravelPackageToTileProps } from "./util";
|
|
3
|
+
import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "@myrjfa/state/dist/lib/models/pricing";
|
|
4
|
+
function extractTravelPackageSlug(payload) {
|
|
5
|
+
if (typeof payload === "string")
|
|
6
|
+
return payload;
|
|
7
|
+
if (!payload || typeof payload !== "object")
|
|
8
|
+
return undefined;
|
|
9
|
+
const record = payload;
|
|
10
|
+
if (typeof record.slug === "string")
|
|
11
|
+
return record.slug;
|
|
12
|
+
if (typeof record.data === "string")
|
|
13
|
+
return record.data;
|
|
14
|
+
if (record.data)
|
|
15
|
+
return extractTravelPackageSlug(record.data);
|
|
16
|
+
if (record.travelPackage)
|
|
17
|
+
return extractTravelPackageSlug(record.travelPackage);
|
|
18
|
+
if (record.package)
|
|
19
|
+
return extractTravelPackageSlug(record.package);
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
export async function getTravelPackageTilesByStatus(status, limit) {
|
|
23
|
+
try {
|
|
24
|
+
const endpoint = `/packages/getAllPackageTiles?status=${status}${limit ? ("&limit=" + limit) : ""}`;
|
|
25
|
+
const data = await get(endpoint, false);
|
|
26
|
+
// const data = {
|
|
27
|
+
// message: "success",
|
|
28
|
+
// data: [examplePackage, examplePackage, examplePackage, examplePackage],
|
|
29
|
+
// }
|
|
30
|
+
return {
|
|
31
|
+
success: true,
|
|
32
|
+
message: data.message,
|
|
33
|
+
tiles: data.data.map((travelPackage) => (convertTravelPackageToTileProps(travelPackage))),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
console.error('Failed to add packages by status: ', error);
|
|
41
|
+
return {
|
|
42
|
+
success: false,
|
|
43
|
+
error: error.message,
|
|
44
|
+
tiles: []
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
;
|
|
49
|
+
export async function trendingTravelPackageTiles(limit) {
|
|
50
|
+
try {
|
|
51
|
+
const endpoint = `/packages/getAllPackageTiles?status=open&sort=trending${limit ? ("&limit=" + limit) : ""}`;
|
|
52
|
+
const data = await get(endpoint, false);
|
|
53
|
+
// const data = {
|
|
54
|
+
// message: "success",
|
|
55
|
+
// data: [examplePackage, examplePackage, examplePackage, examplePackage],
|
|
56
|
+
// }
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
message: data.message,
|
|
60
|
+
tiles: data.data.map((travelPackage) => convertTravelPackageToTileProps(travelPackage)),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
console.error('Failed to fetch trending packages: ', error);
|
|
68
|
+
return {
|
|
69
|
+
success: false,
|
|
70
|
+
error: error.message,
|
|
71
|
+
tiles: []
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
;
|
|
76
|
+
export async function relatedTravelPackageTiles(slug, limit) {
|
|
77
|
+
try {
|
|
78
|
+
const endpoint = `/packages/getAllPackageTiles?status=open${limit ? ("&limit=" + limit) : ""}`;
|
|
79
|
+
const data = await get(endpoint, false);
|
|
80
|
+
// const data = {
|
|
81
|
+
// message: "success",
|
|
82
|
+
// data: [examplePackage, examplePackage, examplePackage, examplePackage],
|
|
83
|
+
// }
|
|
84
|
+
return {
|
|
85
|
+
success: true,
|
|
86
|
+
message: data.message,
|
|
87
|
+
tiles: data.data.filter(pack => pack.slug != slug).map((travelPackage) => (convertTravelPackageToTileProps(travelPackage))),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
console.error('Failed to fetch related packages: ', error);
|
|
95
|
+
return {
|
|
96
|
+
success: false,
|
|
97
|
+
error: error.message,
|
|
98
|
+
tiles: []
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
;
|
|
103
|
+
export async function favourtieTravelPackageTiles() {
|
|
104
|
+
try {
|
|
105
|
+
const endpoint = `/packages/favourites`;
|
|
106
|
+
const data = await get(endpoint);
|
|
107
|
+
// const data = {
|
|
108
|
+
// message: "success",
|
|
109
|
+
// data: [examplePackage, examplePackage, examplePackage, examplePackage],
|
|
110
|
+
// }
|
|
111
|
+
return {
|
|
112
|
+
success: true,
|
|
113
|
+
message: data.message,
|
|
114
|
+
tiles: data.data.map((travelPackage) => convertTravelPackageToTileProps(travelPackage)),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
console.error('Failed to fetch favourites packages: ', error);
|
|
122
|
+
return {
|
|
123
|
+
success: false,
|
|
124
|
+
error: error.message,
|
|
125
|
+
tiles: []
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
;
|
|
130
|
+
export async function travelPackageTilesByBusiness(username, status = ['open'], limit) {
|
|
131
|
+
try {
|
|
132
|
+
const endpoint = `/packages/getPackagesByUsername/${username}?status=${status}${limit ? ("&limit=" + limit) : ""}`;
|
|
133
|
+
const data = await get(endpoint, false);
|
|
134
|
+
// const data = {
|
|
135
|
+
// message: "success",
|
|
136
|
+
// data: [examplePackage, examplePackage, examplePackage, examplePackage],
|
|
137
|
+
// }
|
|
138
|
+
return {
|
|
139
|
+
success: true,
|
|
140
|
+
message: data.message,
|
|
141
|
+
tiles: data.data.map((travelPackage) => ({
|
|
142
|
+
slug: travelPackage.slug || '',
|
|
143
|
+
image: travelPackage.packageImages?.[0] || "/images/placeholder.svg",
|
|
144
|
+
title: travelPackage.title || '',
|
|
145
|
+
tileType: "packages",
|
|
146
|
+
location: travelPackage.city + ', ' + travelPackage.state || '',
|
|
147
|
+
date: travelPackage.createdAt,
|
|
148
|
+
rating: travelPackage.rating,
|
|
149
|
+
className: travelPackage.categoryId,
|
|
150
|
+
price: calculatePricingStrategyDisplayUnitPrice(getPricingStrategies(travelPackage)?.[0]),
|
|
151
|
+
currency: getPricingCurrency(travelPackage),
|
|
152
|
+
duration: travelPackage.duration,
|
|
153
|
+
difficultyLevel: travelPackage.difficultyLevel,
|
|
154
|
+
})),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
console.error('Failed to fetch business packages: ', error);
|
|
162
|
+
return {
|
|
163
|
+
success: false,
|
|
164
|
+
error: error.message,
|
|
165
|
+
tiles: []
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
;
|
|
170
|
+
// all travelPackages (may not be required or may delete in future)
|
|
171
|
+
// export async function getAllTravelPackages(): Promise<{ success: boolean, travelPackages: TravelPackage[], message?: string, error?: string }> {
|
|
172
|
+
// try {
|
|
173
|
+
// const res = await fetch('/sample/travelPackage.json');
|
|
174
|
+
// const travelPackages = await res.json() as TravelPackage[];
|
|
175
|
+
// return {
|
|
176
|
+
// success: true,
|
|
177
|
+
// message: "fetch success",
|
|
178
|
+
// travelPackages: travelPackages,
|
|
179
|
+
// }
|
|
180
|
+
// } catch (error: any) {
|
|
181
|
+
// console.error('Failed to fetch all packages: ', error);
|
|
182
|
+
// return {
|
|
183
|
+
// success: false,
|
|
184
|
+
// error: error.message,
|
|
185
|
+
// travelPackages: []
|
|
186
|
+
// };
|
|
187
|
+
// }
|
|
188
|
+
// };
|
|
189
|
+
// for admin dashboard
|
|
190
|
+
// export async function getTravelPackagesByStatus(status: string[], limit?: number): Promise<{ success: boolean, travelPackages: TravelPackage[], message?: string, error?: string }> {
|
|
191
|
+
// try {
|
|
192
|
+
// const endpoint = `/packages/getAllPackageTiles?status=${status}${limit ? ("&limit=" + limit) : ""}`;
|
|
193
|
+
// const data: {
|
|
194
|
+
// data: TravelPackage[], message: string
|
|
195
|
+
// } = await get(endpoint, false);
|
|
196
|
+
// return {
|
|
197
|
+
// success: true,
|
|
198
|
+
// message: data.message,
|
|
199
|
+
// travelPackages: data.data,
|
|
200
|
+
// }
|
|
201
|
+
// } catch (error: any) {
|
|
202
|
+
// console.error('Failed to fetch travelPackages by status: ', error);
|
|
203
|
+
// return {
|
|
204
|
+
// success: false,
|
|
205
|
+
// error: error.message,
|
|
206
|
+
// travelPackages: []
|
|
207
|
+
// };
|
|
208
|
+
// }
|
|
209
|
+
// };
|
|
210
|
+
export async function travelPackageDetails(slug) {
|
|
211
|
+
try {
|
|
212
|
+
const endpoint = `/packages/getPackage/${slug}`;
|
|
213
|
+
const data = await get(endpoint, true);
|
|
214
|
+
// const data = {
|
|
215
|
+
// message: "success",
|
|
216
|
+
// data: examplePackage,
|
|
217
|
+
// }
|
|
218
|
+
return {
|
|
219
|
+
success: true,
|
|
220
|
+
message: data.message,
|
|
221
|
+
travelPackage: data.data,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
226
|
+
throw error;
|
|
227
|
+
}
|
|
228
|
+
console.error('Failed to fetch package details: ', error);
|
|
229
|
+
return {
|
|
230
|
+
success: false,
|
|
231
|
+
error: error.message,
|
|
232
|
+
travelPackage: null
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
;
|
|
237
|
+
export async function travelPackageMetaData(slug) {
|
|
238
|
+
try {
|
|
239
|
+
const endpoint = `/packages/getPackageMetaData/${slug}`;
|
|
240
|
+
const data = await get(endpoint, false);
|
|
241
|
+
// const data = {
|
|
242
|
+
// message: "success",
|
|
243
|
+
// data: examplePackage,
|
|
244
|
+
// }
|
|
245
|
+
const travelPackage = data.data;
|
|
246
|
+
return {
|
|
247
|
+
success: true,
|
|
248
|
+
message: data.message,
|
|
249
|
+
metadata: {
|
|
250
|
+
image: travelPackage.packageImages?.[0] || "/images/placeholder.svg",
|
|
251
|
+
title: travelPackage.title || 'Trippeaze',
|
|
252
|
+
location: travelPackage.city + ', ' + travelPackage.state || 'india',
|
|
253
|
+
packageType: travelPackage.categoryId || "Travel package",
|
|
254
|
+
highlights: travelPackage.highlights || [],
|
|
255
|
+
categoryId: travelPackage.categoryId,
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE' || error.message?.includes('bail out of prerendering'))) {
|
|
261
|
+
throw error;
|
|
262
|
+
}
|
|
263
|
+
console.error('Failed to add packages by status: ', error);
|
|
264
|
+
return {
|
|
265
|
+
success: false,
|
|
266
|
+
error: error.message,
|
|
267
|
+
metadata: null
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
;
|
|
272
|
+
export async function createTravelPackage(formData) {
|
|
273
|
+
try {
|
|
274
|
+
const endpoint = `/packages/create`;
|
|
275
|
+
const data = await post(endpoint, formData);
|
|
276
|
+
return {
|
|
277
|
+
success: true,
|
|
278
|
+
slug: extractTravelPackageSlug(data.data),
|
|
279
|
+
message: data.message,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
console.error('Failed to save package: ', error);
|
|
284
|
+
return {
|
|
285
|
+
success: false,
|
|
286
|
+
error: error.message,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
export async function editTravelPackage(formData, slug) {
|
|
291
|
+
try {
|
|
292
|
+
const endpoint = `/packages/update/${slug}`;
|
|
293
|
+
const data = await patch(endpoint, formData);
|
|
294
|
+
return {
|
|
295
|
+
success: true,
|
|
296
|
+
slug: extractTravelPackageSlug(data.data) || slug,
|
|
297
|
+
message: data.message,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
console.error('Failed to save package: ', error);
|
|
302
|
+
return {
|
|
303
|
+
success: false,
|
|
304
|
+
error: error.message,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
export async function travelPackagesByBusiness() {
|
|
309
|
+
try {
|
|
310
|
+
const endpoint = `/hosts/packagesPostedByBusiness`;
|
|
311
|
+
const data = await get(endpoint);
|
|
312
|
+
return {
|
|
313
|
+
success: true,
|
|
314
|
+
message: data.message,
|
|
315
|
+
travelPackages: data.data,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
console.error('Failed to fetch travel packages by business: ', error);
|
|
320
|
+
return {
|
|
321
|
+
success: false,
|
|
322
|
+
error: error.message,
|
|
323
|
+
travelPackages: []
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// enquiries
|
|
328
|
+
// export async function getEnquiriesOfUser(): Promise<{ success: boolean, message?: string, error?: string, enquiries: PackageEnquiry[] }> {
|
|
329
|
+
// try {
|
|
330
|
+
// const endpoint = `/enquiries/getEnquiriesOfVolunteer`;
|
|
331
|
+
// const data: { message: string, data: PackageEnquiry[] } = await get(endpoint);
|
|
332
|
+
// return { success: true, message: data.message, enquiries: data.data };
|
|
333
|
+
// } catch (error: any) {
|
|
334
|
+
// return {
|
|
335
|
+
// success: false,
|
|
336
|
+
// error: error.message,
|
|
337
|
+
// enquiries: []
|
|
338
|
+
// };
|
|
339
|
+
// }
|
|
340
|
+
// }
|
|
341
|
+
// export async function withdrawEnquiryForm(id: string): Promise<{ success: boolean, message?: string, error?: string }> {
|
|
342
|
+
// try {
|
|
343
|
+
// const endpoint = `/enquiries/deleteUserApply?id=${id}`
|
|
344
|
+
// const data: { message: string, data: string } = await del(endpoint);
|
|
345
|
+
// return {
|
|
346
|
+
// success: true,
|
|
347
|
+
// message: data.message,
|
|
348
|
+
// }
|
|
349
|
+
// }
|
|
350
|
+
// catch (error: any) {
|
|
351
|
+
// return {
|
|
352
|
+
// success: false,
|
|
353
|
+
// error: error.message,
|
|
354
|
+
// };
|
|
355
|
+
// }
|
|
356
|
+
// }
|
|
357
|
+
export async function getTravelPackageEnquiryForm(slug) {
|
|
358
|
+
try {
|
|
359
|
+
const endpoint = `/enquiries/getEnquiryByUserAndSlug/${slug}`;
|
|
360
|
+
const data = await get(endpoint);
|
|
361
|
+
// const data = {
|
|
362
|
+
// message: "success",
|
|
363
|
+
// data: mockEnquiries.at(0) ?? null
|
|
364
|
+
// }
|
|
365
|
+
return { success: true, message: data.message, enquiry: data.data };
|
|
366
|
+
}
|
|
367
|
+
catch (error) {
|
|
368
|
+
return {
|
|
369
|
+
success: false,
|
|
370
|
+
error: error.message,
|
|
371
|
+
enquiry: null
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// export async function enquiryDetails(enquiryId: string): Promise<{ success: boolean, message?: string, error?: string, enquiry: PackageEnquiry | null }> {
|
|
376
|
+
// try {
|
|
377
|
+
// const endpoint = `/enquiries/getSingleEnquiry/${enquiryId}`;
|
|
378
|
+
// const data: { message: string, data: PackageEnquiry } = await get(endpoint);
|
|
379
|
+
// return { success: true, message: data.message, enquiry: data.data };
|
|
380
|
+
// } catch (error: any) {
|
|
381
|
+
// return {
|
|
382
|
+
// success: false,
|
|
383
|
+
// error: error.message,
|
|
384
|
+
// enquiry: null
|
|
385
|
+
// };
|
|
386
|
+
// }
|
|
387
|
+
// }
|
|
388
|
+
export async function getEnquiriesForPackage(slug) {
|
|
389
|
+
try {
|
|
390
|
+
const endpoint = `/enquiries/package/${slug}`;
|
|
391
|
+
const data = await get(endpoint);
|
|
392
|
+
// const data = { message: "success", data: mockEnquiries };
|
|
393
|
+
return { success: true, message: data.message, enquiries: data.data };
|
|
394
|
+
}
|
|
395
|
+
catch (error) {
|
|
396
|
+
return {
|
|
397
|
+
success: false,
|
|
398
|
+
error: error.message,
|
|
399
|
+
enquiries: []
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
export async function saveTravelPackageEnquiryForm(formData) {
|
|
404
|
+
try {
|
|
405
|
+
const endpoint = `/enquiries/enquireForPackage`;
|
|
406
|
+
const data = await post(endpoint, formData);
|
|
407
|
+
return {
|
|
408
|
+
success: true,
|
|
409
|
+
message: data.message,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
catch (error) {
|
|
413
|
+
return {
|
|
414
|
+
success: false,
|
|
415
|
+
error: error.message,
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
export async function updateEnquiryStatus(status, id) {
|
|
420
|
+
try {
|
|
421
|
+
const endpoint = `/enquiries/updateEnquiry/${id}`;
|
|
422
|
+
const data = await patch(endpoint, { status: status });
|
|
423
|
+
return {
|
|
424
|
+
success: true,
|
|
425
|
+
message: data.message,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
catch (error) {
|
|
429
|
+
return {
|
|
430
|
+
success: false,
|
|
431
|
+
error: error.message,
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
export async function editTravelPackageEnquiry(formData, id) {
|
|
436
|
+
try {
|
|
437
|
+
const endpoint = `/enquiries/updateEnquiry/${id}`;
|
|
438
|
+
const data = await patch(endpoint, formData);
|
|
439
|
+
return {
|
|
440
|
+
success: true,
|
|
441
|
+
message: data.message,
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
return {
|
|
446
|
+
success: false,
|
|
447
|
+
error: error.message,
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
export async function deleteTravelPackage(slug) {
|
|
452
|
+
try {
|
|
453
|
+
const endpoint = `/packages/delete/${slug}`;
|
|
454
|
+
const data = await del(endpoint);
|
|
455
|
+
return {
|
|
456
|
+
success: true,
|
|
457
|
+
message: data.message,
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
catch (error) {
|
|
461
|
+
console.error('Failed to delete package: ', error);
|
|
462
|
+
return {
|
|
463
|
+
success: false,
|
|
464
|
+
error: error.message,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
export async function getAdminTravelPackages() {
|
|
469
|
+
try {
|
|
470
|
+
const endpoint = `/admin/packages`;
|
|
471
|
+
const data = await get(endpoint);
|
|
472
|
+
return {
|
|
473
|
+
success: true,
|
|
474
|
+
message: data.message,
|
|
475
|
+
travelPackages: data.data,
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
catch (error) {
|
|
479
|
+
console.error('Failed to fetch travelPackages by status: ', error);
|
|
480
|
+
return {
|
|
481
|
+
success: false,
|
|
482
|
+
error: error.message,
|
|
483
|
+
travelPackages: []
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ActivityItem, ItineraryItem } from "@myrjfa/state/dist/lib/models/travelPackage";
|
|
2
|
+
type QuestionItem = {
|
|
3
|
+
question: string;
|
|
4
|
+
answer: string;
|
|
5
|
+
};
|
|
6
|
+
type TravelPackagePayload = Record<string, unknown> & {
|
|
7
|
+
questions?: QuestionItem[];
|
|
8
|
+
itinerary?: ItineraryItem[];
|
|
9
|
+
activities?: ActivityItem[];
|
|
10
|
+
pricing?: unknown;
|
|
11
|
+
};
|
|
12
|
+
type AppendOptions = {
|
|
13
|
+
status: "draft" | "pending";
|
|
14
|
+
initialValues?: Record<string, unknown> | null;
|
|
15
|
+
skipEmptyScalars?: boolean;
|
|
16
|
+
draftStep?: number;
|
|
17
|
+
};
|
|
18
|
+
export declare function buildTravelPackageFormData(values: TravelPackagePayload, { status, initialValues, skipEmptyScalars, draftStep }: AppendOptions): FormData;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=travelPackageFormData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"travelPackageFormData.d.ts","sourceRoot":"","sources":["../../src/lib/travelPackageFormData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE/F,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACpD,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA2BF,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,oBAAoB,EAC5B,EAAE,MAAM,EAAE,aAAoB,EAAE,gBAAwB,EAAE,SAAS,EAAE,EAAE,aAAa,YA2DrF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const hasChanged = (initialValues, key, value) => {
|
|
2
|
+
if (!initialValues)
|
|
3
|
+
return true;
|
|
4
|
+
return JSON.stringify(initialValues[key]) !== JSON.stringify(value);
|
|
5
|
+
};
|
|
6
|
+
const appendStringSequence = (formData, key, items) => {
|
|
7
|
+
if (!items.length)
|
|
8
|
+
return;
|
|
9
|
+
formData.append(key, "start");
|
|
10
|
+
items.forEach((item) => formData.append(key, item));
|
|
11
|
+
formData.append(key, "end");
|
|
12
|
+
};
|
|
13
|
+
const appendJsonSequence = (formData, key, items, startSentinel, endSentinel) => {
|
|
14
|
+
if (!items.length)
|
|
15
|
+
return;
|
|
16
|
+
formData.append(key, JSON.stringify(startSentinel));
|
|
17
|
+
items.forEach((item) => formData.append(key, JSON.stringify(item)));
|
|
18
|
+
formData.append(key, JSON.stringify(endSentinel));
|
|
19
|
+
};
|
|
20
|
+
export function buildTravelPackageFormData(values, { status, initialValues = null, skipEmptyScalars = false, draftStep }) {
|
|
21
|
+
const formData = new FormData();
|
|
22
|
+
Object.entries(values).forEach(([key, value]) => {
|
|
23
|
+
if (!hasChanged(initialValues, key, value))
|
|
24
|
+
return;
|
|
25
|
+
if (key === "questions" && Array.isArray(value)) {
|
|
26
|
+
appendJsonSequence(formData, key, value, { question: "start", answer: "start" }, { question: "end", answer: "end" });
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (key === "pricing" && value) {
|
|
30
|
+
formData.append(key, JSON.stringify(value));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (key === "itinerary" && Array.isArray(value)) {
|
|
34
|
+
appendJsonSequence(formData, key, value, { day: 0, title: "start", message: "start", route: [], facilities: [], mode: "start" }, { day: 0, title: "end", message: "end", route: [], facilities: [], mode: "end" });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (key === "activities" && Array.isArray(value)) {
|
|
38
|
+
appendJsonSequence(formData, key, value, { name: "start", type: "optional" }, { name: "end", type: "optional" });
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(value)) {
|
|
42
|
+
appendStringSequence(formData, key, value);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (skipEmptyScalars && (value === "" || value == null))
|
|
46
|
+
return;
|
|
47
|
+
formData.append(key, value);
|
|
48
|
+
});
|
|
49
|
+
formData.append("status", status);
|
|
50
|
+
if (draftStep !== undefined) {
|
|
51
|
+
formData.append("draftStep", String(draftStep));
|
|
52
|
+
}
|
|
53
|
+
return formData;
|
|
54
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getPricingStrategies } from "@myrjfa/state/dist/lib/models/pricing";
|
|
2
|
+
import { type TravelPackage, type ItineraryItem } from "@myrjfa/state/dist/lib/models/travelPackage";
|
|
3
|
+
type FormWithReset<TValues> = {
|
|
4
|
+
reset(values: any): void;
|
|
5
|
+
};
|
|
6
|
+
export type TravelPackageFormValues = Partial<TravelPackage> & {
|
|
7
|
+
availableFrom?: Date;
|
|
8
|
+
pricing?: {
|
|
9
|
+
currency: string;
|
|
10
|
+
pricingStrategies: ReturnType<typeof getPricingStrategies>;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type TravelPackageInitialValues = {
|
|
14
|
+
itinerary: ItineraryItem[];
|
|
15
|
+
whatsIncluded: string[];
|
|
16
|
+
whatsNotIncluded: string[];
|
|
17
|
+
thingsToDo: string[];
|
|
18
|
+
thingsNotToDo: string[];
|
|
19
|
+
thingsToCarry: string[];
|
|
20
|
+
highlights: string[];
|
|
21
|
+
packageImages: string[];
|
|
22
|
+
activities: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
type: "optional" | "compulsory";
|
|
25
|
+
day?: number;
|
|
26
|
+
additionalPrice: number;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
export declare function getTravelPackageInitialValues(data: Partial<TravelPackage>): TravelPackageInitialValues;
|
|
30
|
+
export declare function resetTravelPackageForm(form: FormWithReset<TravelPackageFormValues>, data: Partial<TravelPackage>): void;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=travelPackageFormPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"travelPackageFormPage.d.ts","sourceRoot":"","sources":["../../src/lib/travelPackageFormPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAqC,MAAM,6CAA6C,CAAC;AAExI,KAAK,aAAa,CAAC,OAAO,IAAI;IAC5B,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG;IAC7D,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;KAC5D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;QAChC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;CACJ,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAC3B,0BAA0B,CAiB5B;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAC5C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,QAuB7B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { getPricingCurrency, getPricingStrategies } from "@myrjfa/state/dist/lib/models/pricing";
|
|
2
|
+
import { DifficultyEnum } from "@myrjfa/state/dist/lib/models/travelPackage";
|
|
3
|
+
export function getTravelPackageInitialValues(data) {
|
|
4
|
+
return {
|
|
5
|
+
itinerary: data.itinerary || [],
|
|
6
|
+
whatsIncluded: data.whatsIncluded || [],
|
|
7
|
+
whatsNotIncluded: data.whatsNotIncluded || [],
|
|
8
|
+
thingsToDo: data.thingsToDo || [],
|
|
9
|
+
thingsNotToDo: data.thingsNotToDo || [],
|
|
10
|
+
thingsToCarry: data.thingsToCarry || [],
|
|
11
|
+
highlights: data.highlights || [],
|
|
12
|
+
packageImages: data.packageImages || [],
|
|
13
|
+
activities: (data.activities || []).map((activity) => ({
|
|
14
|
+
name: activity.name || "",
|
|
15
|
+
type: activity.type === "compulsory" ? "compulsory" : "optional",
|
|
16
|
+
day: activity.day ? Number(activity.day) : undefined,
|
|
17
|
+
additionalPrice: activity.additionalPrice ? Number(activity.additionalPrice) : 0,
|
|
18
|
+
})),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function resetTravelPackageForm(form, data) {
|
|
22
|
+
form.reset({
|
|
23
|
+
title: data.title || "",
|
|
24
|
+
description: data.description || "",
|
|
25
|
+
categoryId: data.categoryId || "",
|
|
26
|
+
bookingMode: data.bookingMode || "both",
|
|
27
|
+
city: data.city || "",
|
|
28
|
+
country: data.country || "",
|
|
29
|
+
state: data.state || "",
|
|
30
|
+
availableFrom: data.availableFrom ? new Date(data.availableFrom) : new Date(),
|
|
31
|
+
frequency: data.frequency || "weekly",
|
|
32
|
+
customFrequencyDays: data.customFrequencyDays || undefined,
|
|
33
|
+
duration: data.duration || 1,
|
|
34
|
+
urgent: data.urgent || false,
|
|
35
|
+
peopleRequired: data.peopleRequired || 1,
|
|
36
|
+
pricing: data.pricing || {
|
|
37
|
+
currency: getPricingCurrency(data),
|
|
38
|
+
pricingStrategies: getPricingStrategies(data),
|
|
39
|
+
},
|
|
40
|
+
difficultyLevel: data.difficultyLevel || DifficultyEnum.Easy,
|
|
41
|
+
questions: data.questions || [],
|
|
42
|
+
});
|
|
43
|
+
}
|