diff --git a/assets/css/scss/atoms/_skeleton.scss b/assets/css/scss/atoms/_skeleton.scss new file mode 100644 index 0000000000..0a5fa292fb --- /dev/null +++ b/assets/css/scss/atoms/_skeleton.scss @@ -0,0 +1,7 @@ +.p-skeleton { + @apply bg-gray-30 rounded-lg w-full; + + &:after { + @apply bg-gradient-to-r from-transparent via-gray-15 to-transparent; + } +} diff --git a/assets/css/scss/index.scss b/assets/css/scss/index.scss index a843f6423d..d3dc03348e 100755 --- a/assets/css/scss/index.scss +++ b/assets/css/scss/index.scss @@ -5,6 +5,12 @@ //@import 'inbox'; //@import 'install'; +@layer base { + hr { + @apply text-gray-30 my-6; + } +} + @import "settings/typography"; @import "atoms/buttons"; @@ -14,9 +20,11 @@ @import "atoms/input_text"; @import "atoms/messages"; @import "atoms/overlay"; +@import "atoms/skeleton"; @import "molecules/course_tool"; @import "molecules/datepicker"; +@import "molecules/empty_state"; @import "organisms/modals"; @import "organisms/sidebar"; diff --git a/assets/css/scss/molecules/_empty_state.scss b/assets/css/scss/molecules/_empty_state.scss new file mode 100644 index 0000000000..69d6724dea --- /dev/null +++ b/assets/css/scss/molecules/_empty_state.scss @@ -0,0 +1,21 @@ +@layer components { + .empty-state { + @apply border border-solid border-support-1 bg-gray-10 flex flex-auto justify-center items-center p-10 rounded-lg; + + &__container { + @apply flex flex-col items-center text-center w-60; + } + + &__icon { + @apply mb-4 text-9xl text-transparent bg-clip-text bg-gradient-to-br from-primary to-primary-gradient w-32 h-32; + } + + &__summary { + @apply text-body-2-bold text-gray-90; + } + + &__detail { + @apply text-body-2 text-gray-90; + } + } +} diff --git a/assets/vue/components/EmptyState.vue b/assets/vue/components/EmptyState.vue new file mode 100644 index 0000000000..84ad5013e8 --- /dev/null +++ b/assets/vue/components/EmptyState.vue @@ -0,0 +1,42 @@ + + + + + + + + + + + diff --git a/assets/vue/layouts/MyCourses.vue b/assets/vue/layouts/MyCourses.vue index 54165bda45..bc05671303 100644 --- a/assets/vue/layouts/MyCourses.vue +++ b/assets/vue/layouts/MyCourses.vue @@ -1,13 +1,30 @@ - - - - - - - - - - - + + + + + + + + + diff --git a/assets/vue/router/index.js b/assets/vue/router/index.js index 42d10b02ae..9efb78afab 100644 --- a/assets/vue/router/index.js +++ b/assets/vue/router/index.js @@ -67,7 +67,9 @@ const router = createRouter({ component: MyCoursesLayout, children: [ { - path: '/courses', name: 'MyCourses', component: MyCourseList, + path: '', + name: 'MyCourses', + component: MyCourseList, meta: {requiresAuth: true}, }, ] diff --git a/assets/vue/views/user/courses/List.vue b/assets/vue/views/user/courses/List.vue index 75ba26377f..2bdae700c6 100644 --- a/assets/vue/views/user/courses/List.vue +++ b/assets/vue/views/user/courses/List.vue @@ -1,71 +1,75 @@ - - + + - + + + + - - - - - - - - {{ $t("You don't have any course yet.") }} - - - {{ $t('Go to "Explore" to find a topic of interest, or wait for someone to subscribe you.') }} - - - + + + -