@icvdeveloper/common-module 0.0.67 → 0.0.69
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 +6 -6
- package/dist/module.json +1 -1
- package/dist/module.mjs +1 -1
- package/dist/runtime/@types/components.d.ts +1 -0
- package/dist/runtime/assets/scss/index.css +2 -0
- package/dist/runtime/assets/svg/answer.svg +14 -14
- package/dist/runtime/assets/svg/avatar.svg +1 -1
- package/dist/runtime/assets/svg/bell-icon.svg +3 -3
- package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
- package/dist/runtime/assets/svg/close-icon.svg +1 -1
- package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
- package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
- package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
- package/dist/runtime/assets/svg/icon-close.svg +1 -1
- package/dist/runtime/assets/svg/icon-info.svg +2 -2
- package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
- package/dist/runtime/assets/svg/icon-offline.svg +3 -3
- package/dist/runtime/assets/svg/icon-online.svg +3 -3
- package/dist/runtime/assets/svg/icon-person.svg +2 -2
- package/dist/runtime/assets/svg/icon-play.svg +2 -2
- package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
- package/dist/runtime/assets/svg/icon-star.svg +24 -24
- package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
- package/dist/runtime/assets/svg/icon-website.svg +2 -2
- package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
- package/dist/runtime/assets/svg/notification-icon.svg +32 -32
- package/dist/runtime/assets/svg/offline-icon.svg +1 -1
- package/dist/runtime/assets/svg/online-icon.svg +3 -3
- package/dist/runtime/assets/svg/peer2peer.svg +3 -3
- package/dist/runtime/assets/svg/phone.svg +1 -1
- package/dist/runtime/assets/svg/plus-icon.svg +1 -1
- package/dist/runtime/assets/svg/red-icon.svg +3 -3
- package/dist/runtime/assets/svg/reject.svg +14 -14
- package/dist/runtime/assets/svg/search-icon.svg +3 -3
- package/dist/runtime/components/affiliates/AffiliatePage.vue +17 -17
- package/dist/runtime/components/agenda/AgendaList.vue +104 -99
- package/dist/runtime/components/agenda/AgendaTabbed.vue +300 -300
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +26 -26
- package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
- package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
- package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
- package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
- package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
- package/dist/runtime/components/auth/PasswordReset.vue +60 -60
- package/dist/runtime/components/auth/Registration.vue +27 -27
- package/dist/runtime/components/auth/Ucc.vue +52 -52
- package/dist/runtime/components/core/Accordion.vue +97 -97
- package/dist/runtime/components/core/CountdownTimer.vue +308 -308
- package/dist/runtime/components/core/DynamicHtml.vue +1 -1
- package/dist/runtime/components/core/Modal.vue +111 -111
- package/dist/runtime/components/core/Navbar.vue +154 -154
- package/dist/runtime/components/core/SvgIcon.vue +151 -151
- package/dist/runtime/components/core/ZoomModal.vue +37 -37
- package/dist/runtime/components/events/EventHeader.vue +133 -133
- package/dist/runtime/components/events/ListEvents.vue +507 -482
- package/dist/runtime/components/forms/AlertBox.vue +21 -21
- package/dist/runtime/components/forms/ErrorField.vue +17 -17
- package/dist/runtime/components/forms/Message.vue +27 -27
- package/dist/runtime/components/forms/SearchInput.vue +38 -38
- package/dist/runtime/components/forms/SupportForm.vue +112 -112
- package/dist/runtime/components/forms/SwitchInput.vue +42 -42
- package/dist/runtime/components/forms/TextArea.vue +26 -26
- package/dist/runtime/components/forms/TextInput.vue +28 -28
- package/dist/runtime/components/layouts/Accordion.vue +78 -78
- package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
- package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
- package/dist/runtime/components/profile/Profile.vue +149 -149
- package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
- package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
- package/dist/runtime/components/support/FAQAccordion.vue +137 -137
- package/package.json +59 -59
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { toRefs, reactive, ref, computed } from "vue";
|
|
3
|
-
import { find } from "lodash-es";
|
|
4
|
-
import { storeToRefs } from "pinia";
|
|
5
|
-
import { useAuthStore } from "../../store/auth";
|
|
6
|
-
import Sidebar from "./components/Sidebar.vue";
|
|
7
|
-
import SidebarNavItem from "./components/SidebarNavItem.vue";
|
|
8
|
-
import TabGeneralInformation from "./tabs/GeneralInformation.vue";
|
|
9
|
-
import TabFavorites from "./tabs/Favorites.vue";
|
|
10
|
-
import TabProfileImage from "./tabs/ProfileImage.vue";
|
|
11
|
-
|
|
12
|
-
type Props = {
|
|
13
|
-
visible?: boolean;
|
|
14
|
-
showFavorites?: boolean;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type Tab = {
|
|
18
|
-
id: number;
|
|
19
|
-
name: string;
|
|
20
|
-
component: Component | null;
|
|
21
|
-
shouldShow: boolean;
|
|
22
|
-
selected: boolean;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
// props
|
|
26
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
27
|
-
visible: false,
|
|
28
|
-
showFavorites: false,
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
// data
|
|
32
|
-
const { visible, showFavorites } = toRefs(props);
|
|
33
|
-
const { user } = storeToRefs(useAuthStore());
|
|
34
|
-
const tabs = reactive<Tab[]>([
|
|
35
|
-
{
|
|
36
|
-
id: 1,
|
|
37
|
-
name: "General Information",
|
|
38
|
-
component: TabGeneralInformation,
|
|
39
|
-
shouldShow: true,
|
|
40
|
-
selected: true,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: 2,
|
|
44
|
-
name: "Profile Image",
|
|
45
|
-
component: TabProfileImage,
|
|
46
|
-
shouldShow: true,
|
|
47
|
-
selected: false,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: 3,
|
|
51
|
-
name: "Favorites",
|
|
52
|
-
component: TabFavorites,
|
|
53
|
-
shouldShow: showFavorites.value,
|
|
54
|
-
selected: false,
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
id: 4,
|
|
58
|
-
name: "Logout",
|
|
59
|
-
component: null,
|
|
60
|
-
shouldShow: true,
|
|
61
|
-
selected: false,
|
|
62
|
-
},
|
|
63
|
-
]);
|
|
64
|
-
|
|
65
|
-
// emits
|
|
66
|
-
const emit = defineEmits<{
|
|
67
|
-
(event: "close"): void;
|
|
68
|
-
}>();
|
|
69
|
-
|
|
70
|
-
// computed
|
|
71
|
-
const selectedTab = computed<Tab>(() => {
|
|
72
|
-
return find(tabs, {
|
|
73
|
-
selected: true,
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
// actions
|
|
78
|
-
const { logout } = useAuthStore();
|
|
79
|
-
const closeModal = () => {
|
|
80
|
-
emit("close");
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
const setTab = (id: number) => {
|
|
84
|
-
if (id === 4) {
|
|
85
|
-
logout();
|
|
86
|
-
closeModal();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const currentSelected = find(tabs, {
|
|
91
|
-
selected: true,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
if (currentSelected) {
|
|
95
|
-
currentSelected.selected = false;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const newSelected = find(tabs, {
|
|
99
|
-
id,
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
newSelected.selected = true;
|
|
103
|
-
};
|
|
104
|
-
</script>
|
|
105
|
-
|
|
106
|
-
<template>
|
|
107
|
-
<CommonModal
|
|
108
|
-
:use-padding="false"
|
|
109
|
-
modal-size="60"
|
|
110
|
-
:visible="visible"
|
|
111
|
-
@trigger="closeModal"
|
|
112
|
-
>
|
|
113
|
-
<template #modal-body>
|
|
114
|
-
<div class="p-2">
|
|
115
|
-
<div class="flex flex-col md:flex-row w-full p-5">
|
|
116
|
-
<Sidebar :name="user.name">
|
|
117
|
-
<SidebarNavItem
|
|
118
|
-
v-for="tab in tabs"
|
|
119
|
-
:id="tab.id"
|
|
120
|
-
:key="tab.id"
|
|
121
|
-
class="cursor-pointer"
|
|
122
|
-
:active="tab.selected === true"
|
|
123
|
-
@click="setTab"
|
|
124
|
-
>
|
|
125
|
-
{{ tab.name }}
|
|
126
|
-
</SidebarNavItem>
|
|
127
|
-
</Sidebar>
|
|
128
|
-
|
|
129
|
-
<div class="md:w-3/4 content-container ml-0 md:ml-2">
|
|
130
|
-
<div
|
|
131
|
-
v-if="selectedTab"
|
|
132
|
-
class="rounded overflow-hidden shadow-lg w-full h-full p-5"
|
|
133
|
-
>
|
|
134
|
-
<h2 class="mb-4">
|
|
135
|
-
{{ selectedTab.name }}
|
|
136
|
-
</h2>
|
|
137
|
-
|
|
138
|
-
<component
|
|
139
|
-
:is="selectedTab.component"
|
|
140
|
-
v-if="selectedTab.component && selectedTab.shouldShow"
|
|
141
|
-
:user="user"
|
|
142
|
-
/>
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
</div>
|
|
146
|
-
</div>
|
|
147
|
-
</template>
|
|
148
|
-
</CommonModal>
|
|
149
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { toRefs, reactive, ref, computed } from "vue";
|
|
3
|
+
import { find } from "lodash-es";
|
|
4
|
+
import { storeToRefs } from "pinia";
|
|
5
|
+
import { useAuthStore } from "../../store/auth";
|
|
6
|
+
import Sidebar from "./components/Sidebar.vue";
|
|
7
|
+
import SidebarNavItem from "./components/SidebarNavItem.vue";
|
|
8
|
+
import TabGeneralInformation from "./tabs/GeneralInformation.vue";
|
|
9
|
+
import TabFavorites from "./tabs/Favorites.vue";
|
|
10
|
+
import TabProfileImage from "./tabs/ProfileImage.vue";
|
|
11
|
+
|
|
12
|
+
type Props = {
|
|
13
|
+
visible?: boolean;
|
|
14
|
+
showFavorites?: boolean;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
type Tab = {
|
|
18
|
+
id: number;
|
|
19
|
+
name: string;
|
|
20
|
+
component: Component | null;
|
|
21
|
+
shouldShow: boolean;
|
|
22
|
+
selected: boolean;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// props
|
|
26
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
27
|
+
visible: false,
|
|
28
|
+
showFavorites: false,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// data
|
|
32
|
+
const { visible, showFavorites } = toRefs(props);
|
|
33
|
+
const { user } = storeToRefs(useAuthStore());
|
|
34
|
+
const tabs = reactive<Tab[]>([
|
|
35
|
+
{
|
|
36
|
+
id: 1,
|
|
37
|
+
name: "General Information",
|
|
38
|
+
component: TabGeneralInformation,
|
|
39
|
+
shouldShow: true,
|
|
40
|
+
selected: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: 2,
|
|
44
|
+
name: "Profile Image",
|
|
45
|
+
component: TabProfileImage,
|
|
46
|
+
shouldShow: true,
|
|
47
|
+
selected: false,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 3,
|
|
51
|
+
name: "Favorites",
|
|
52
|
+
component: TabFavorites,
|
|
53
|
+
shouldShow: showFavorites.value,
|
|
54
|
+
selected: false,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: 4,
|
|
58
|
+
name: "Logout",
|
|
59
|
+
component: null,
|
|
60
|
+
shouldShow: true,
|
|
61
|
+
selected: false,
|
|
62
|
+
},
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
// emits
|
|
66
|
+
const emit = defineEmits<{
|
|
67
|
+
(event: "close"): void;
|
|
68
|
+
}>();
|
|
69
|
+
|
|
70
|
+
// computed
|
|
71
|
+
const selectedTab = computed<Tab>(() => {
|
|
72
|
+
return find(tabs, {
|
|
73
|
+
selected: true,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// actions
|
|
78
|
+
const { logout } = useAuthStore();
|
|
79
|
+
const closeModal = () => {
|
|
80
|
+
emit("close");
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const setTab = (id: number) => {
|
|
84
|
+
if (id === 4) {
|
|
85
|
+
logout();
|
|
86
|
+
closeModal();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const currentSelected = find(tabs, {
|
|
91
|
+
selected: true,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
if (currentSelected) {
|
|
95
|
+
currentSelected.selected = false;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const newSelected = find(tabs, {
|
|
99
|
+
id,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
newSelected.selected = true;
|
|
103
|
+
};
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<template>
|
|
107
|
+
<CommonModal
|
|
108
|
+
:use-padding="false"
|
|
109
|
+
modal-size="60"
|
|
110
|
+
:visible="visible"
|
|
111
|
+
@trigger="closeModal"
|
|
112
|
+
>
|
|
113
|
+
<template #modal-body>
|
|
114
|
+
<div class="p-2">
|
|
115
|
+
<div class="flex flex-col md:flex-row w-full p-5">
|
|
116
|
+
<Sidebar :name="user.name">
|
|
117
|
+
<SidebarNavItem
|
|
118
|
+
v-for="tab in tabs"
|
|
119
|
+
:id="tab.id"
|
|
120
|
+
:key="tab.id"
|
|
121
|
+
class="cursor-pointer"
|
|
122
|
+
:active="tab.selected === true"
|
|
123
|
+
@click="setTab"
|
|
124
|
+
>
|
|
125
|
+
{{ tab.name }}
|
|
126
|
+
</SidebarNavItem>
|
|
127
|
+
</Sidebar>
|
|
128
|
+
|
|
129
|
+
<div class="md:w-3/4 content-container ml-0 md:ml-2">
|
|
130
|
+
<div
|
|
131
|
+
v-if="selectedTab"
|
|
132
|
+
class="rounded overflow-hidden shadow-lg w-full h-full p-5"
|
|
133
|
+
>
|
|
134
|
+
<h2 class="mb-4">
|
|
135
|
+
{{ selectedTab.name }}
|
|
136
|
+
</h2>
|
|
137
|
+
|
|
138
|
+
<component
|
|
139
|
+
:is="selectedTab.component"
|
|
140
|
+
v-if="selectedTab.component && selectedTab.shouldShow"
|
|
141
|
+
:user="user"
|
|
142
|
+
/>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</template>
|
|
148
|
+
</CommonModal>
|
|
149
|
+
</template>
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { toRefs } from "vue";
|
|
3
|
-
|
|
4
|
-
type Props = {
|
|
5
|
-
name: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
const props = defineProps<Props>();
|
|
9
|
-
|
|
10
|
-
const { name } = toRefs(props);
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<template>
|
|
14
|
-
<div
|
|
15
|
-
class="md:w-1/4 rounded overflow-hidden shadow-lg md:mr-2 mt-1 mb-4 md:mb-0 md:mt-0"
|
|
16
|
-
>
|
|
17
|
-
<div class="px-6 py-4">
|
|
18
|
-
<div class="font-bold text-xl mb-2">
|
|
19
|
-
{{ name }}
|
|
20
|
-
</div>
|
|
21
|
-
|
|
22
|
-
<nav class="flex-grow md:block pb-0 md:pb-4 md:overflow-y-auto">
|
|
23
|
-
<slot />
|
|
24
|
-
</nav>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { toRefs } from "vue";
|
|
3
|
+
|
|
4
|
+
type Props = {
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const props = defineProps<Props>();
|
|
9
|
+
|
|
10
|
+
const { name } = toRefs(props);
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<div
|
|
15
|
+
class="md:w-1/4 rounded overflow-hidden shadow-lg md:mr-2 mt-1 mb-4 md:mb-0 md:mt-0"
|
|
16
|
+
>
|
|
17
|
+
<div class="px-6 py-4">
|
|
18
|
+
<div class="font-bold text-xl mb-2">
|
|
19
|
+
{{ name }}
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<nav class="flex-grow md:block pb-0 md:pb-4 md:overflow-y-auto">
|
|
23
|
+
<slot />
|
|
24
|
+
</nav>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { toRefs } from "vue";
|
|
3
|
-
|
|
4
|
-
type Props = {
|
|
5
|
-
active: boolean;
|
|
6
|
-
id: number;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const props = defineProps<Props>();
|
|
10
|
-
|
|
11
|
-
// reactive prop data
|
|
12
|
-
const { active, id } = toRefs(props);
|
|
13
|
-
|
|
14
|
-
// emits
|
|
15
|
-
const emit = defineEmits<{
|
|
16
|
-
(event: "click", value: number): void;
|
|
17
|
-
}>();
|
|
18
|
-
|
|
19
|
-
// methods
|
|
20
|
-
const onClick = () => {
|
|
21
|
-
emit("click", id.value);
|
|
22
|
-
};
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<template>
|
|
26
|
-
<a
|
|
27
|
-
:class="{ active: active }"
|
|
28
|
-
class="sidebar-nav-item block px-4 py-2 mt-2 mx-1 text-black text-sm no-underline font-semibold rounded-lg hover:bg-gray-500 focus:text-white hover:text-white focus:bg-gray-500 focus:outline-none focus:shadow-outline"
|
|
29
|
-
@click="onClick"
|
|
30
|
-
>
|
|
31
|
-
<slot />
|
|
32
|
-
</a>
|
|
33
|
-
</template>
|
|
34
|
-
|
|
35
|
-
<style scoped>
|
|
36
|
-
.active {
|
|
37
|
-
@apply bg-gray-500 text-white;
|
|
38
|
-
}
|
|
39
|
-
</style>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { toRefs } from "vue";
|
|
3
|
+
|
|
4
|
+
type Props = {
|
|
5
|
+
active: boolean;
|
|
6
|
+
id: number;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const props = defineProps<Props>();
|
|
10
|
+
|
|
11
|
+
// reactive prop data
|
|
12
|
+
const { active, id } = toRefs(props);
|
|
13
|
+
|
|
14
|
+
// emits
|
|
15
|
+
const emit = defineEmits<{
|
|
16
|
+
(event: "click", value: number): void;
|
|
17
|
+
}>();
|
|
18
|
+
|
|
19
|
+
// methods
|
|
20
|
+
const onClick = () => {
|
|
21
|
+
emit("click", id.value);
|
|
22
|
+
};
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<template>
|
|
26
|
+
<a
|
|
27
|
+
:class="{ active: active }"
|
|
28
|
+
class="sidebar-nav-item block px-4 py-2 mt-2 mx-1 text-black text-sm no-underline font-semibold rounded-lg hover:bg-gray-500 focus:text-white hover:text-white focus:bg-gray-500 focus:outline-none focus:shadow-outline"
|
|
29
|
+
@click="onClick"
|
|
30
|
+
>
|
|
31
|
+
<slot />
|
|
32
|
+
</a>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<style scoped>
|
|
36
|
+
.active {
|
|
37
|
+
@apply bg-gray-500 text-white;
|
|
38
|
+
}
|
|
39
|
+
</style>
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { storeToRefs } from "pinia";
|
|
3
|
-
import { useAuthStore } from "../../../store/auth";
|
|
4
|
-
|
|
5
|
-
const { user } = storeToRefs(useAuthStore());
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<div>
|
|
10
|
-
<div
|
|
11
|
-
v-for="favorite in user.favorites"
|
|
12
|
-
:key="favorite.id"
|
|
13
|
-
class="py-2 border-b"
|
|
14
|
-
>
|
|
15
|
-
<h3 class="pb-2">
|
|
16
|
-
{{ favorite.name }}
|
|
17
|
-
</h3>
|
|
18
|
-
<div v-html="favorite.description" />
|
|
19
|
-
</div>
|
|
20
|
-
</div>
|
|
21
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { storeToRefs } from "pinia";
|
|
3
|
+
import { useAuthStore } from "../../../store/auth";
|
|
4
|
+
|
|
5
|
+
const { user } = storeToRefs(useAuthStore());
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<div>
|
|
10
|
+
<div
|
|
11
|
+
v-for="favorite in user.favorites"
|
|
12
|
+
:key="favorite.id"
|
|
13
|
+
class="py-2 border-b"
|
|
14
|
+
>
|
|
15
|
+
<h3 class="pb-2">
|
|
16
|
+
{{ favorite.name }}
|
|
17
|
+
</h3>
|
|
18
|
+
<div v-html="favorite.description" />
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</template>
|