@iservice365/layer-common 1.5.0 → 1.5.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @iservice365/layer-common
2
2
 
3
+ ## 1.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - e76d332: Fix auth middleware
8
+
9
+ ## 1.5.1
10
+
11
+ ### Patch Changes
12
+
13
+ - dbc4dc4: Fix service provider invite
14
+
3
15
  ## 1.5.0
4
16
 
5
17
  ### Minor Changes
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="d-flex flex-column">
3
- <v-text-field v-bind="$attrs" ref="dateTimePickerRef" :model-value="dateTimeFormattedReadOnly"
3
+ <v-text-field v-bind="$attrs" ref="dateTimePickerRef" :model-value="dateTimeFormattedReadOnly" autocomplete="off"
4
4
  :placeholder="placeholder" :rules="rules" style="z-index: 10" @click="openDatePicker">
5
5
  <template #append-inner>
6
6
  <v-icon icon="mdi-calendar" @click.stop="openDatePicker" />
@@ -17,6 +17,10 @@
17
17
  rounded="pill"
18
18
  variant="tonal"
19
19
  size="large"
20
+ @click="
21
+ (createInviteDialog = true),
22
+ setServiceProvider({ mode: 'invite' })
23
+ "
20
24
  >
21
25
  Invite
22
26
  </v-btn>
@@ -99,16 +103,6 @@
99
103
  </v-row>
100
104
 
101
105
  <v-dialog v-model="createDialog" width="500" persistent>
102
- <!-- <ServiceProviderFormCreate
103
- @cancel="createDialog = false"
104
- :org="props.orgId"
105
- :type="props.type"
106
- :site-id="props.siteId"
107
- :service-provider-org-id="props.orgId"
108
- @success="success()"
109
- @success:create-more="_getAllServiceProvider()"
110
- @notify="onNotify"
111
- /> -->
112
106
  <v-card width="100%">
113
107
  <v-toolbar>
114
108
  <v-row no-gutters class="fill-height px-6" align="center">
@@ -238,6 +232,96 @@
238
232
  </v-card>
239
233
  </v-dialog>
240
234
 
235
+ <v-dialog v-model="createInviteDialog" width="500" persistent>
236
+ <v-card width="100%">
237
+ <v-toolbar>
238
+ <v-row no-gutters class="fill-height px-6" align="center">
239
+ <span class="font-weight-bold text-h5">
240
+ Invite Service Provider
241
+ </span>
242
+ </v-row>
243
+ </v-toolbar>
244
+ <v-card-text style="max-height: 100vh; overflow-y: auto">
245
+ <v-form
246
+ v-model="validServiceProvider"
247
+ :disabled="disableServiceProvider"
248
+ >
249
+ <v-row no-gutters class="px-4">
250
+ <v-col cols="12" class="mt-2">
251
+ <v-row no-gutters>
252
+ <InputLabel class="text-capitalize" title="Email" required />
253
+ <v-col cols="12">
254
+ <v-text-field
255
+ v-model="serviceProvider.email"
256
+ density="comfortable"
257
+ :rules="[requiredRule, emailRule]"
258
+ ></v-text-field>
259
+ </v-col>
260
+ </v-row>
261
+ </v-col>
262
+
263
+ <v-col cols="12">
264
+ <v-checkbox
265
+ v-model="createMoreServiceProvider"
266
+ density="comfortable"
267
+ hide-details
268
+ >
269
+ <template #label>
270
+ <span class="text-subtitle-2 font-weight-bold">
271
+ Invite more
272
+ </span>
273
+ </template>
274
+ </v-checkbox>
275
+ </v-col>
276
+
277
+ <v-col cols="12" class="my-2">
278
+ <v-row no-gutters>
279
+ <v-col cols="12" class="text-center">
280
+ <span
281
+ class="text-none text-subtitle-2 font-weight-medium text-error"
282
+ >
283
+ {{ messageServiceProvider }}
284
+ </span>
285
+ </v-col>
286
+ </v-row>
287
+ </v-col>
288
+ </v-row>
289
+ </v-form>
290
+ </v-card-text>
291
+
292
+ <v-toolbar>
293
+ <v-row class="px-6">
294
+ <v-col cols="6">
295
+ <v-btn
296
+ block
297
+ variant="text"
298
+ class="text-none"
299
+ size="large"
300
+ @click="setServiceProvider({ mode: 'invite', dialog: false })"
301
+ >
302
+ Cancel
303
+ </v-btn>
304
+ </v-col>
305
+
306
+ <v-col cols="6">
307
+ <v-btn
308
+ block
309
+ variant="flat"
310
+ color="black"
311
+ class="text-none"
312
+ size="large"
313
+ :disabled="!validServiceProvider"
314
+ :loading="disableServiceProvider"
315
+ @click="submitServiceProviderInvite()"
316
+ >
317
+ Submit
318
+ </v-btn>
319
+ </v-col>
320
+ </v-row>
321
+ </v-toolbar>
322
+ </v-card>
323
+ </v-dialog>
324
+
241
325
  <Snackbar v-model="messageSnackbar" :text="message" :color="messageColor" />
242
326
  </template>
243
327
 
@@ -349,6 +433,7 @@ watchEffect(() => {
349
433
  });
350
434
 
351
435
  const createDialog = ref(false);
436
+ const createInviteDialog = ref(false);
352
437
 
353
438
  const success = () => {
354
439
  createDialog.value = false;
@@ -376,6 +461,7 @@ function setServiceProvider({
376
461
  } = {}) {
377
462
  if (mode === "invite") {
378
463
  // dialogServiceProviderInvite.value = dialog;
464
+ createInviteDialog.value = dialog;
379
465
  }
380
466
 
381
467
  if (mode === "add") {
@@ -422,4 +508,28 @@ async function submitServiceProviderAdd() {
422
508
  disableServiceProvider.value = false;
423
509
  }
424
510
  }
511
+
512
+ async function submitServiceProviderInvite() {
513
+ disableServiceProvider.value = true;
514
+ messageServiceProvider.value = "";
515
+ try {
516
+ await inviteServiceProvider({
517
+ email: serviceProvider.value.email,
518
+ orgId: props.orgId,
519
+ siteId: props.siteId,
520
+ siteName: site.value?.name ?? "",
521
+ });
522
+ if (createMoreServiceProvider.value) {
523
+ serviceProvider.value.email = "";
524
+ } else {
525
+ await setServiceProvider({ mode: "invite", dialog: false });
526
+ }
527
+ } catch (error: any) {
528
+ messageServiceProvider.value =
529
+ error?.response?._data?.message ??
530
+ "An error occurred while inviting the service provider.";
531
+ } finally {
532
+ disableServiceProvider.value = false;
533
+ }
534
+ }
425
535
  </script>
@@ -272,6 +272,7 @@ function filterTypeSelectionLabel() {
272
272
  function toRoute(status: any) {
273
273
  const obj = tabOptions.find((x) => x.status === status);
274
274
  if (!obj) return;
275
+ page.value =1
275
276
  navigateTo({
276
277
  name: routeName,
277
278
  params: {
@@ -1,9 +1,18 @@
1
- export default defineNuxtRouteMiddleware(async () => {
1
+ export default defineNuxtRouteMiddleware(async (route) => {
2
2
  const { cookieConfig } = useRuntimeConfig().public;
3
3
 
4
4
  // Get access token from cookies
5
5
  const sid = useCookie("sid", cookieConfig).value;
6
6
 
7
+ const serviceProviderEmail = (route.query.email as string) ?? "";
8
+
9
+ console.log(serviceProviderEmail);
10
+
11
+ if (serviceProviderEmail) {
12
+ useCookie("service-provider-email", cookieConfig).value =
13
+ serviceProviderEmail;
14
+ }
15
+
7
16
  if (!sid) {
8
17
  // Redirect to login page if no access token
9
18
  return navigateTo({ name: "index" });
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@iservice365/layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "1.5.0",
5
+ "version": "1.5.2",
6
6
  "main": "./nuxt.config.ts",
7
7
  "scripts": {
8
8
  "dev": "nuxi dev .playground",