@paris-ias/list 1.0.174 → 1.0.176

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.
Files changed (39) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/actions/DenseItem.vue +2 -10
  3. package/dist/runtime/components/actions/ExpandedItem.vue +1 -7
  4. package/dist/runtime/components/actions/RowsItem.vue +2 -5
  5. package/dist/runtime/components/affiliation/DenseItem.vue +1 -7
  6. package/dist/runtime/components/affiliation/RowsItem.vue +1 -7
  7. package/dist/runtime/components/affiliations/DenseItem.vue +1 -7
  8. package/dist/runtime/components/affiliations/RowsItem.vue +1 -7
  9. package/dist/runtime/components/apps/DenseItem.vue +1 -7
  10. package/dist/runtime/components/apps/RowsItem.vue +1 -7
  11. package/dist/runtime/components/disciplines/DenseItem.vue +1 -7
  12. package/dist/runtime/components/disciplines/RowsItem.vue +1 -3
  13. package/dist/runtime/components/events/DenseItem.vue +8 -13
  14. package/dist/runtime/components/events/Location.vue +42 -23
  15. package/dist/runtime/components/events/RowsItem.vue +4 -6
  16. package/dist/runtime/components/events/View.vue +1 -1
  17. package/dist/runtime/components/fellowships/Badges.vue +3 -1
  18. package/dist/runtime/components/fellowships/DenseItem.vue +3 -13
  19. package/dist/runtime/components/fellowships/RowsItem.vue +2 -7
  20. package/dist/runtime/components/fellowships/View.vue +1 -1
  21. package/dist/runtime/components/files/DenseItem.vue +1 -7
  22. package/dist/runtime/components/files/RowsItem.vue +1 -7
  23. package/dist/runtime/components/list/atoms/SortMenu.vue +16 -19
  24. package/dist/runtime/components/list/atoms/ViewMenu.vue +16 -14
  25. package/dist/runtime/components/list/organisms/List.vue +5 -6
  26. package/dist/runtime/components/mailing/RowsItem.vue +1 -7
  27. package/dist/runtime/components/misc/molecules/Related.vue +2 -4
  28. package/dist/runtime/components/news/DenseItem.vue +4 -10
  29. package/dist/runtime/components/news/RowsItem.vue +3 -6
  30. package/dist/runtime/components/people/DenseItem.vue +4 -6
  31. package/dist/runtime/components/people/RowsItem.vue +4 -8
  32. package/dist/runtime/components/projects/DenseItem.vue +5 -17
  33. package/dist/runtime/components/projects/RowsItem.vue +2 -11
  34. package/dist/runtime/components/publications/DenseItem.vue +6 -9
  35. package/dist/runtime/components/publications/RowsItem.vue +3 -8
  36. package/dist/runtime/components/tags/RowsItem.vue +1 -7
  37. package/dist/runtime/components/users/DenseItem.vue +1 -4
  38. package/dist/runtime/components/users/RowsItem.vue +1 -4
  39. package/package.json +2 -2
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@paris-ias/list",
3
3
  "configKey": "list",
4
- "version": "1.0.174",
4
+ "version": "1.0.176",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.8.4",
7
7
  "unbuild": "2.0.0"
@@ -1,16 +1,11 @@
1
1
  <template>
2
2
  <v-row class="my-2 highlight-on-hover" no-gutters>
3
3
  <v-col v-if="mdAndUp" cols="12" md="2">
4
- <MiscAtomsImageContainer
5
- :loading="isLoading"
6
- :src="imageSrc"
7
- :ratio="1 / 1"
8
- cover
9
- />
4
+ <MiscAtomsImageContainer :loading :src="imageSrc" :ratio="1 / 1" cover />
10
5
  </v-col>
11
6
  <v-col cols="12" :md="mdAndUp ? 10 : 12" class="px-4">
12
7
  <v-skeleton-loader
13
- v-if="isLoading"
8
+ v-if="loading"
14
9
  :type="
15
10
  [
16
11
  'heading, subtitle, text@6',
@@ -36,17 +31,14 @@
36
31
  <script setup>
37
32
  import { useDisplay } from "vuetify"
38
33
  import { computed } from "#imports"
39
- import { useRootStore } from "../../stores/root"
40
34
 
41
35
  const { name, mdAndUp } = useDisplay()
42
- const rootStore = useRootStore()
43
36
  const props = defineProps({
44
37
  item: { type: Object, required: true },
45
38
  index: { type: Number, required: false, default: 0 },
46
39
  loading: { type: Boolean, required: false, default: false },
47
40
  })
48
41
 
49
- const isLoading = computed(() => rootStore.loading || props.loading)
50
42
  const imageSrc = computed(() => {
51
43
  const img = props.item && props.item.image
52
44
  if (!img) return "/default.png"
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <v-card flat class="pa-4">
3
- <v-skeleton-loader v-if="isLoading" type="heading, text@10" />
3
+ <v-skeleton-loader v-if="loading" type="heading, text@10" />
4
4
  <template v-else>
5
5
  <div class="text-h4 mb-2">{{ item.name }}</div>
6
6
  <MDC v-if="item.description" :value="item.description" />
@@ -9,14 +9,8 @@
9
9
  </template>
10
10
 
11
11
  <script setup>
12
- import { computed } from "#imports"
13
- import { useRootStore } from "../../stores/root"
14
-
15
- const rootStore = useRootStore()
16
12
  const props = defineProps({
17
13
  item: { type: Object, required: true },
18
14
  loading: { type: Boolean, default: false },
19
15
  })
20
-
21
- const isLoading = computed(() => rootStore.loading || props.loading)
22
16
  </script>
@@ -5,12 +5,12 @@
5
5
  cover
6
6
  :src="imageSrc"
7
7
  :ratio="1 / 1"
8
- :loading="isLoading"
8
+ :loading="loading"
9
9
  />
10
10
  </v-col>
11
11
  <v-col cols="12" :md="mdAndUp ? 9 : 12" class="px-6">
12
12
  <v-skeleton-loader
13
- v-if="isLoading"
13
+ v-if="loading"
14
14
  :type="
15
15
  [
16
16
  'heading, ossein, text@6, button',
@@ -36,17 +36,14 @@
36
36
  <script setup>
37
37
  import { useDisplay } from "vuetify"
38
38
  import { computed } from "#imports"
39
- import { useRootStore } from "../../stores/root"
40
39
 
41
40
  const { name, mdAndUp } = useDisplay()
42
- const rootStore = useRootStore()
43
41
  const props = defineProps({
44
42
  item: { type: Object, required: true },
45
43
  index: { type: Number, required: false, default: 0 },
46
44
  loading: { type: Boolean, required: false, default: false },
47
45
  })
48
46
 
49
- const isLoading = computed(() => rootStore.loading || props.loading)
50
47
  const imageSrc = computed(() => {
51
48
  const img = props.item && props.item.image
52
49
  if (!img) return "/default.png"
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="my-2 highlight-on-hover" no-gutters>
3
3
  <v-col cols="12" class="px-4">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@6" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@6" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="text-body-1 mt-1">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="highlight-on-hover pa-3" no-gutters>
3
3
  <v-col cols="12" class="px-6">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@8, button" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@8, button" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="mt-2">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="my-2 highlight-on-hover" no-gutters>
3
3
  <v-col cols="12" class="px-4">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@6" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@6" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="text-body-1 mt-1">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="highlight-on-hover pa-3" no-gutters>
3
3
  <v-col cols="12" class="px-6">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@8, button" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@8, button" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="mt-2">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -5,7 +5,7 @@
5
5
  @click="$router.push(pathPrefix)"
6
6
  >
7
7
  <v-col cols="12" class="px-4">
8
- <v-skeleton-loader v-if="isLoading" type="heading, text@6" />
8
+ <v-skeleton-loader v-if="loading" type="heading, text@6" />
9
9
  <template v-else>
10
10
  <div class="text-h5">{{ item.name }}</div>
11
11
  <div v-if="item.summary" class="text-body-1 mt-1">
@@ -18,17 +18,11 @@
18
18
  </template>
19
19
 
20
20
  <script setup>
21
- import { computed } from "#imports"
22
- import { useRootStore } from "../../stores/root"
23
-
24
- const rootStore = useRootStore()
25
21
  const props = defineProps({
26
22
  item: { type: Object, required: true },
27
23
  pathPrefix: { type: String, required: true },
28
24
  loading: { type: Boolean, default: false },
29
25
  })
30
-
31
- const isLoading = computed(() => rootStore.loading || props.loading)
32
26
  </script>
33
27
 
34
28
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="highlight-on-hover pa-3" no-gutters>
3
3
  <v-col cols="12" class="px-6">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@8, button" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@8, button" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="mt-2">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="my-2 highlight-on-hover" no-gutters>
3
3
  <v-col cols="12" class="px-4">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@6" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@6" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="text-body-1 mt-1">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="highlight-on-hover pa-3" no-gutters>
3
3
  <v-col cols="12" class="px-6">
4
- <v-skeleton-loader v-if="isLoading" type="heading, text@8, button" />
4
+ <v-skeleton-loader v-if="loading" type="heading, text@8, button" />
5
5
  <template v-else>
6
6
  <div class="text-h5">{{ item.name }}</div>
7
7
  <div v-if="item.summary" class="mt-2">
@@ -22,8 +22,6 @@ const props = defineProps({
22
22
  item: { type: Object, required: true },
23
23
  loading: { type: Boolean, default: false },
24
24
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
25
  </script>
28
26
 
29
27
  <style></style>
@@ -3,7 +3,7 @@
3
3
  <v-col v-if="mdAndUp" cols="1">
4
4
  <MiscAtomsDateStamp
5
5
  v-if="item.start"
6
- :loading="isLoading"
6
+ :loading
7
7
  :date-start="item.start"
8
8
  :date-stop="item.stop"
9
9
  class="pr-6 mt-md-2"
@@ -12,7 +12,7 @@
12
12
  <v-col v-if="mdAndUp" cols="1">
13
13
  <MiscAtomsImageContainer
14
14
  cover
15
- :loading="isLoading"
15
+ :loading
16
16
  :src="
17
17
  item && item.image && item.image.url ? item.image.url : '/default.png'
18
18
  "
@@ -22,12 +22,7 @@
22
22
  </v-col>
23
23
 
24
24
  <v-col align-self="start" class="pl-2">
25
- <v-skeleton-loader
26
- v-if="isLoading"
27
- type="chip"
28
- class="mr-3"
29
- width="120"
30
- />
25
+ <v-skeleton-loader v-if="loading" type="chip" class="mr-3" width="120" />
31
26
  <v-chip
32
27
  v-else
33
28
  class="mr-3"
@@ -40,7 +35,7 @@
40
35
  {{ $t("list.filters.events.category." + item.category) }}
41
36
  </v-chip>
42
37
  <v-skeleton-loader
43
- v-if="isLoading && smAndDown"
38
+ v-if="loading && smAndDown"
44
39
  type="text"
45
40
  width="90"
46
41
  class="d-inline-block"
@@ -56,7 +51,7 @@
56
51
  </span>
57
52
 
58
53
  <v-skeleton-loader
59
- v-if="isLoading"
54
+ v-if="loading"
60
55
  type="heading"
61
56
  width="80%"
62
57
  class="mt-2"
@@ -71,7 +66,7 @@
71
66
  : item.name
72
67
  "
73
68
  />
74
- <v-skeleton-loader v-if="isLoading" type="text@3" class="mt-2" />
69
+ <v-skeleton-loader v-if="loading" type="text@3" class="mt-2" />
75
70
  <MDC
76
71
  v-else
77
72
  class="text-body-1 font-weight-light paragraph"
@@ -84,7 +79,7 @@
84
79
  </v-col>
85
80
 
86
81
  <v-col align-self="center" cols="auto">
87
- <v-skeleton-loader v-if="isLoading" type="button" />
82
+ <v-skeleton-loader v-if="loading" type="button" />
88
83
  <div v-else>
89
84
  <EventsBadges :item />
90
85
  </div>
@@ -118,5 +113,5 @@ const props = defineProps({
118
113
  },
119
114
  })
120
115
 
121
- const isLoading = computed(() => rootStore.loading || props.loading)
116
+ // const loading = computed(() => rootStore.loading || props.loading)
122
117
  </script>
@@ -1,23 +1,25 @@
1
1
  <template>
2
- <div v-if="item?.location" class="text-overline font-weight-bold mt-md-4">
3
- {{ $t("location") }}
4
- </div>
5
-
6
- <div v-if="item?.location">
7
- <b>{{ item.location.name }}</b>
8
-
9
- <div v-if="formattedAddress">
10
- {{ formattedAddress }}
2
+ <div class="location-section">
3
+ <div class="text-overline font-weight-bold mt-md-4">
4
+ {{ $t("location") }}
5
+ </div>
6
+ <div>
7
+ <b>{{ getDisplayLocation().name }}</b>
8
+ <div v-if="getDisplayLocation().address" class="text-body-2">
9
+ {{ getDisplayLocation().address }}
10
+ </div>
11
+ </div>
12
+ <div v-if="getDisplayLocation().details" class="text-caption mt-1">
13
+ {{ getDisplayLocation().details }}
11
14
  </div>
12
- </div>
13
-
14
- <div v-if="item?.location?.details" class="text-caption">
15
- {{ item.location.details }}
16
15
  </div>
17
16
  </template>
18
17
 
19
18
  <script setup>
20
- import { computed } from "vue"
19
+ import { useI18n, useAppConfig } from "#imports"
20
+
21
+ const { locale } = useI18n()
22
+ const appConfig = useAppConfig()
21
23
 
22
24
  const props = defineProps({
23
25
  item: {
@@ -26,18 +28,35 @@ const props = defineProps({
26
28
  },
27
29
  })
28
30
 
29
- const formattedAddress = computed(() => {
30
- const loc = props.item?.location
31
- if (!loc) return ""
32
-
33
- const parts = [loc.street, loc.city].filter(Boolean)
34
-
35
- const zipCountry = [loc.zip, loc.country].filter(Boolean)
31
+ const formatAddress = (location) => {
32
+ if (!location) return ""
33
+ if (location.address) return location.address
36
34
 
35
+ const parts = [location.street, location.city].filter(Boolean)
36
+ const zipCountry = [location.zip, location.country].filter(Boolean)
37
37
  if (zipCountry.length) {
38
38
  parts.push(`(${zipCountry.join(", ")})`)
39
39
  }
40
-
41
40
  return parts.join(", ")
42
- })
41
+ }
42
+
43
+ const getDisplayLocation = () => {
44
+ const loc = props.item?.location
45
+ const hasValidLocation = loc && Object.keys(loc).length > 0
46
+
47
+ if (hasValidLocation) {
48
+ return {
49
+ name: loc.name,
50
+ address: formatAddress(loc),
51
+ details: loc.details,
52
+ }
53
+ }
54
+
55
+ const isFr = locale.value === "fr"
56
+ return {
57
+ name: isFr ? appConfig.short_name_french : appConfig.short_name_english,
58
+ address: appConfig.address,
59
+ details: appConfig.postcode_country,
60
+ }
61
+ }
43
62
  </script>
@@ -5,7 +5,7 @@
5
5
  <v-col cols="12" md="1">
6
6
  <MiscAtomsDateStamp
7
7
  v-if="item.start"
8
- :loading="isLoading"
8
+ :loading="loading"
9
9
  :date-start="item.start"
10
10
  :date-stop="item.stop"
11
11
  class="pr-6 mt-md-2"
@@ -15,7 +15,7 @@
15
15
  <v-row no-gutters>
16
16
  <v-col cols="12" class="pr-lg-6">
17
17
  <v-skeleton-loader
18
- v-if="isLoading"
18
+ v-if="loading"
19
19
  :type="
20
20
  [
21
21
  'heading, subtitle, text@6,subtitle, text, ossein, button, button',
@@ -61,7 +61,7 @@
61
61
  >
62
62
  <v-col cols="12">
63
63
  <v-skeleton-loader
64
- v-if="isLoading"
64
+ v-if="loading"
65
65
  :type="['button'][['md'].indexOf(name || 'md')]"
66
66
  />
67
67
 
@@ -74,7 +74,7 @@
74
74
  <v-col cols="12" md="4">
75
75
  <MiscAtomsImageContainer
76
76
  cover
77
- :loading="isLoading"
77
+ :loading="loading"
78
78
  :src="item.image && item.image.url ? item.image : '/default.png'"
79
79
  :ratio="1 / 1"
80
80
  />
@@ -107,6 +107,4 @@ const props = defineProps({
107
107
  default: false,
108
108
  },
109
109
  })
110
-
111
- const isLoading = computed(() => rootStore.loading || props.loading)
112
110
  </script>
@@ -206,7 +206,7 @@
206
206
  eager
207
207
  ripple
208
208
  variant="accordion"
209
- class="py-8"
209
+ "
210
210
  >
211
211
  <v-expansion-panel
212
212
  v-if="item.description"
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div v-if="registrationStatus === 0" class="text-overline">
2
+ <v-skeleton-loader v-if="loading" type="button" class="my-2" />
3
+ <div v-else-if="registrationStatus === 0" class="text-overline">
3
4
  {{
4
5
  $t("opening-applications-on-0", [getLocalizedDate(item.applicationStart)])
5
6
  }}
@@ -29,6 +30,7 @@ import { computed } from "#imports"
29
30
  const props = defineProps({
30
31
  item: { type: Object, required: true },
31
32
  view: { type: Boolean, required: false, default: false },
33
+ loading: { type: Boolean, required: false, default: false },
32
34
  })
33
35
 
34
36
  const registrationStatus = computed(() => {
@@ -2,7 +2,7 @@
2
2
  <v-row v-ripple no-gutters class="cursor-pointer highlight-on-hover">
3
3
  <v-col align-self="center" cols="8" class="text-h5 dense">
4
4
  <v-skeleton-loader
5
- v-if="isLoading"
5
+ v-if="loading"
6
6
  type="heading"
7
7
  width="75%"
8
8
  class="mb-2"
@@ -15,15 +15,10 @@
15
15
  : item.name
16
16
  "
17
17
  />
18
- <FellowshipsBadges :item="item" />
18
+ <FellowshipsBadges :item="item" :loading="loading" />
19
19
  </v-col>
20
20
  <v-col align-self="center" cols="4">
21
- <v-skeleton-loader
22
- v-if="isLoading"
23
- type="chip"
24
- width="260"
25
- class="mt-2"
26
- />
21
+ <v-skeleton-loader v-if="loading" type="chip" width="260" class="mt-2" />
27
22
  <MiscMoleculesChipContainer
28
23
  v-else
29
24
  :items="[
@@ -40,8 +35,6 @@
40
35
 
41
36
  <script setup>
42
37
  import { useNuxtApp } from "#imports"
43
- import { useRootStore } from "../../stores/root"
44
- import { computed } from "#imports"
45
38
  const { $rootStore } = useNuxtApp()
46
39
 
47
40
  const props = defineProps({
@@ -59,7 +52,4 @@ const props = defineProps({
59
52
  default: false,
60
53
  },
61
54
  })
62
-
63
- const rootStore = useRootStore()
64
- const isLoading = computed(() => rootStore.loading || props.loading)
65
55
  </script>
@@ -2,7 +2,7 @@
2
2
  <v-row v-ripple no-gutters class="cursor-pointer highlight-on-hover my-2">
3
3
  <v-col cols="12" class="w-100">
4
4
  <div v-ripple class="border-thin pa-6">
5
- <template v-if="isLoading">
5
+ <template v-if="loading">
6
6
  <v-skeleton-loader type="chip@2" class="mb-2" />
7
7
  <v-skeleton-loader type="heading" width="70%" class="mt-4" />
8
8
  <v-skeleton-loader type="text@4" class="mt-2 w-100" />
@@ -11,7 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <template v-else>
14
- <FellowshipsBadges :item />
14
+ <FellowshipsBadges :item :loading="loading" />
15
15
 
16
16
  <div class="text-h4 text-black text-wrap mt-4 pb-4">
17
17
  {{ item.name }}
@@ -50,8 +50,6 @@
50
50
 
51
51
  <script setup>
52
52
  import { useDisplay } from "vuetify"
53
- import { computed } from "#imports"
54
- import { useRootStore } from "../../stores/root"
55
53
 
56
54
  const { name } = useDisplay()
57
55
 
@@ -71,9 +69,6 @@ const props = defineProps({
71
69
  default: false,
72
70
  },
73
71
  })
74
-
75
- const rootStore = useRootStore()
76
- const isLoading = computed(() => rootStore.loading || props.loading)
77
72
  </script>
78
73
 
79
74
  <style lang="scss"></style>
@@ -54,7 +54,7 @@
54
54
  class="mt-2"
55
55
  />
56
56
  <div class="mt-5">
57
- <FellowshipsBadges :item="item" :view="view" />
57
+ <FellowshipsBadges :item="item" :view="view" :loading="loading" />
58
58
  </div>
59
59
  </div>
60
60
  <div class="mx-6">
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-row class="my-2 highlight-on-hover" no-gutters>
3
3
  <v-col cols="12" class="px-4">
4
- <v-skeleton-loader v-if="isLoading" type="avatar, text@6" />
4
+ <v-skeleton-loader v-if="loading" type="avatar, text@6" />
5
5
  <template v-else>
6
6
  <div class="text-h6">{{ item.name || item.filename }}</div>
7
7
  <div v-if="item.description" class="text-body-2 mt-1">
@@ -14,16 +14,10 @@
14
14
  </template>
15
15
 
16
16
  <script setup>
17
- import { computed } from "#imports"
18
- import { useRootStore } from "../../stores/root"
19
-
20
- const rootStore = useRootStore()
21
17
  const props = defineProps({
22
18
  item: { type: Object, required: true },
23
19
  loading: { type: Boolean, default: false },
24
20
  })
25
-
26
- const isLoading = computed(() => rootStore.loading || props.loading)
27
21
  </script>
28
22
 
29
23
  <style></style>