mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
chore: refactor frontend components folder
This commit is contained in:
parent
46f016f661
commit
5a746a946d
106 changed files with 159 additions and 164 deletions
|
|
@ -6,7 +6,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { getOrgLogoMediaDirectory } from '@services/media/media'
|
import { getOrgLogoMediaDirectory } from '@services/media/media'
|
||||||
import { AlertTriangle, Info } from 'lucide-react'
|
import { AlertTriangle, Info } from 'lucide-react'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { OrgProvider } from '@components/Contexts/OrgContext'
|
import { OrgProvider } from '@components/Contexts/OrgContext'
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import { useSearchParams } from 'next/navigation'
|
import { useSearchParams } from 'next/navigation'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { useFormik } from 'formik'
|
import { useFormik } from 'formik'
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { getOrgLogoMediaDirectory } from '@services/media/media'
|
import { getOrgLogoMediaDirectory } from '@services/media/media'
|
||||||
import { AlertTriangle, Info } from 'lucide-react'
|
import { AlertTriangle, Info } from 'lucide-react'
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import FormLayout, {
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
Textarea,
|
Textarea,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { AlertTriangle, Check, User } from 'lucide-react'
|
import { AlertTriangle, Check, User } from 'lucide-react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import FormLayout, {
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
Textarea,
|
Textarea,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { AlertTriangle, Check, User } from 'lucide-react'
|
import { AlertTriangle, Check, User } from 'lucide-react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import InviteOnlySignUpComponent from './InviteOnlySignUp'
|
||||||
import { useRouter, useSearchParams } from 'next/navigation'
|
import { useRouter, useSearchParams } from 'next/navigation'
|
||||||
import { validateInviteCode } from '@services/organizations/invites'
|
import { validateInviteCode } from '@services/organizations/invites'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import Toast from '@components/StyledElements/Toast/Toast'
|
import Toast from '@components/Objects/StyledElements/Toast/Toast'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { BarLoader } from 'react-spinners'
|
import { BarLoader } from 'react-spinners'
|
||||||
import { joinOrg } from '@services/organizations/orgs'
|
import { joinOrg } from '@services/organizations/orgs'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client'
|
'use client'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { INSTALL_STEPS } from './steps/steps'
|
import { INSTALL_STEPS } from './steps/steps'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import { useRouter, useSearchParams } from 'next/navigation'
|
import { useRouter, useSearchParams } from 'next/navigation'
|
||||||
import { Suspense } from 'react'
|
import { Suspense } from 'react'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { createNewUserInstall, updateInstall } from '@services/install/install'
|
import { createNewUserInstall, updateInstall } from '@services/install/install'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { useFormik } from 'formik'
|
import { useFormik } from 'formik'
|
||||||
import { BarLoader } from 'react-spinners'
|
import { BarLoader } from 'react-spinners'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client' // Error components must be Client Components
|
'use client' // Error components must be Client Components
|
||||||
|
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
export default function Error({
|
export default function Error({
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { getCollectionById } from '@services/courses/collections'
|
import { getCollectionById } from '@services/courses/collections'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import TypeOfContentTitle from '@components/StyledElements/Titles/TypeOfContentTitle'
|
import TypeOfContentTitle from '@components/Objects/StyledElements/Titles/TypeOfContentTitle'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { getOrganizationContextInfo } from '@services/organizations/orgs'
|
import { getOrganizationContextInfo } from '@services/organizations/orgs'
|
||||||
import { Metadata } from 'next'
|
import { Metadata } from 'next'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import CollectionThumbnail from '@components/Objects/Thumbnails/CollectionThumbnail'
|
import CollectionThumbnail from '@components/Objects/Thumbnails/CollectionThumbnail'
|
||||||
import NewCollectionButton from '@components/StyledElements/Buttons/NewCollectionButton'
|
import NewCollectionButton from '@components/Objects/StyledElements/Buttons/NewCollectionButton'
|
||||||
import ContentPlaceHolderIfUserIsNotAdmin from '@components/ContentPlaceHolder'
|
|
||||||
import { nextAuthOptions } from 'app/auth/options'
|
import { nextAuthOptions } from 'app/auth/options'
|
||||||
import { getServerSession } from 'next-auth'
|
import { getServerSession } from 'next-auth'
|
||||||
import { getOrgCollections } from '@services/courses/collections'
|
import { getOrgCollections } from '@services/courses/collections'
|
||||||
import { getOrgThumbnailMediaDirectory } from '@services/media/media'
|
import { getOrgThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
import ContentPlaceHolderIfUserIsNotAdmin from '@components/Objects/ContentPlaceHolder'
|
||||||
|
|
||||||
type MetadataProps = {
|
type MetadataProps = {
|
||||||
params: { orgslug: string; courseid: string }
|
params: { orgslug: string; courseid: string }
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import { BookOpenCheck, Check, CheckCircle, MoreVertical, UserRoundPen } from 'l
|
||||||
import { markActivityAsComplete } from '@services/courses/activity'
|
import { markActivityAsComplete } from '@services/courses/activity'
|
||||||
import DocumentPdfActivity from '@components/Objects/Activities/DocumentPdf/DocumentPdf'
|
import DocumentPdfActivity from '@components/Objects/Activities/DocumentPdf/DocumentPdf'
|
||||||
import ActivityIndicators from '@components/Pages/Courses/ActivityIndicators'
|
import ActivityIndicators from '@components/Pages/Courses/ActivityIndicators'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import { usePathname, useRouter } from 'next/navigation'
|
import { usePathname, useRouter } from 'next/navigation'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
|
@ -24,7 +24,7 @@ import { AssignmentsTaskProvider } from '@components/Contexts/Assignments/Assign
|
||||||
import AssignmentSubmissionProvider, { useAssignmentSubmission } from '@components/Contexts/Assignments/AssignmentSubmissionContext'
|
import AssignmentSubmissionProvider, { useAssignmentSubmission } from '@components/Contexts/Assignments/AssignmentSubmissionContext'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { mutate } from 'swr'
|
import { mutate } from 'swr'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { useMediaQuery } from 'usehooks-ts'
|
import { useMediaQuery } from 'usehooks-ts'
|
||||||
import PaidCourseActivityDisclaimer from '@components/Objects/Courses/CourseActions/PaidCourseActivityDisclaimer'
|
import PaidCourseActivityDisclaimer from '@components/Objects/Courses/CourseActions/PaidCourseActivityDisclaimer'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client' // Error components must be Client Components
|
'use client' // Error components must be Client Components
|
||||||
|
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
export default function Error({
|
export default function Error({
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import { revalidateTags } from '@services/utils/ts/requests'
|
import { revalidateTags } from '@services/utils/ts/requests'
|
||||||
import ActivityIndicators from '@components/Pages/Courses/ActivityIndicators'
|
import ActivityIndicators from '@components/Pages/Courses/ActivityIndicators'
|
||||||
import { useRouter } from 'next/navigation'
|
import { useRouter } from 'next/navigation'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import {
|
import {
|
||||||
getCourseThumbnailMediaDirectory,
|
getCourseThumbnailMediaDirectory,
|
||||||
getUserAvatarMediaDirectory,
|
getUserAvatarMediaDirectory,
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
'use client'
|
'use client'
|
||||||
import CreateCourseModal from '@components/Objects/Modals/Course/Create/CreateCourse'
|
import CreateCourseModal from '@components/Objects/Modals/Course/Create/CreateCourse'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { useSearchParams } from 'next/navigation'
|
import { useSearchParams } from 'next/navigation'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import TypeOfContentTitle from '@components/StyledElements/Titles/TypeOfContentTitle'
|
import TypeOfContentTitle from '@components/Objects/StyledElements/Titles/TypeOfContentTitle'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import CourseThumbnail from '@components/Objects/Thumbnails/CourseThumbnail'
|
import CourseThumbnail from '@components/Objects/Thumbnails/CourseThumbnail'
|
||||||
import NewCourseButton from '@components/StyledElements/Buttons/NewCourseButton'
|
import NewCourseButton from '@components/Objects/StyledElements/Buttons/NewCourseButton'
|
||||||
import useAdminStatus from '@components/Hooks/useAdminStatus'
|
import useAdminStatus from '@components/Hooks/useAdminStatus'
|
||||||
|
|
||||||
interface CourseProps {
|
interface CourseProps {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client' // Error components must be Client Components
|
'use client' // Error components must be Client Components
|
||||||
|
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
export default function Error({
|
export default function Error({
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client' // Error components must be Client Components
|
'use client' // Error components must be Client Components
|
||||||
|
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import { useEffect } from 'react'
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
export default function Error({
|
export default function Error({
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
'use client'
|
'use client'
|
||||||
import '@styles/globals.css'
|
import '@styles/globals.css'
|
||||||
import { SessionProvider } from 'next-auth/react'
|
import { SessionProvider } from 'next-auth/react'
|
||||||
import Watermark from '@components/Watermark'
|
import Watermark from '@components/Objects/Watermark'
|
||||||
import { OrgMenu } from '@components/Objects/Menus/OrgMenu/OrgMenu'
|
import { OrgMenu } from '@components/Objects/Menus/OrgMenu'
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ import { getUriWithOrg } from '@services/config/config'
|
||||||
import { getOrgCourses } from '@services/courses/courses'
|
import { getOrgCourses } from '@services/courses/courses'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { getOrganizationContextInfo } from '@services/organizations/orgs'
|
import { getOrganizationContextInfo } from '@services/organizations/orgs'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import TypeOfContentTitle from '@components/StyledElements/Titles/TypeOfContentTitle'
|
import TypeOfContentTitle from '@components/Objects/StyledElements/Titles/TypeOfContentTitle'
|
||||||
import CourseThumbnail from '@components/Objects/Thumbnails/CourseThumbnail'
|
import CourseThumbnail from '@components/Objects/Thumbnails/CourseThumbnail'
|
||||||
import CollectionThumbnail from '@components/Objects/Thumbnails/CollectionThumbnail'
|
import CollectionThumbnail from '@components/Objects/Thumbnails/CollectionThumbnail'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import NewCourseButton from '@components/StyledElements/Buttons/NewCourseButton'
|
import NewCourseButton from '@components/Objects/StyledElements/Buttons/NewCourseButton'
|
||||||
import NewCollectionButton from '@components/StyledElements/Buttons/NewCollectionButton'
|
import NewCollectionButton from '@components/Objects/StyledElements/Buttons/NewCollectionButton'
|
||||||
import ContentPlaceHolderIfUserIsNotAdmin from '@components/ContentPlaceHolder'
|
import ContentPlaceHolderIfUserIsNotAdmin from '@components/Objects/ContentPlaceHolder'
|
||||||
import { getOrgCollections } from '@services/courses/collections'
|
import { getOrgCollections } from '@services/courses/collections'
|
||||||
import { getServerSession } from 'next-auth'
|
import { getServerSession } from 'next-auth'
|
||||||
import { nextAuthOptions } from 'app/auth/options'
|
import { nextAuthOptions } from 'app/auth/options'
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import TrailCourseElement from '@components/Pages/Trail/TrailCourseElement'
|
import TrailCourseElement from '@components/Pages/Trail/TrailCourseElement'
|
||||||
import TypeOfContentTitle from '@components/StyledElements/Titles/TypeOfContentTitle'
|
import TypeOfContentTitle from '@components/Objects/StyledElements/Titles/TypeOfContentTitle'
|
||||||
import GeneralWrapperStyled from '@components/StyledElements/Wrappers/GeneralWrapper'
|
import GeneralWrapperStyled from '@components/Objects/StyledElements/Wrappers/GeneralWrapper'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client';
|
'use client';
|
||||||
import DashLeftMenu from '@components/Dashboard/UI/DashLeftMenu'
|
import DashLeftMenu from '@components/Dashboard/Menus/DashLeftMenu';
|
||||||
import DashMobileMenu from '@components/Dashboard/UI/DashMobileMenu'
|
import DashMobileMenu from '@components/Dashboard/Menus/DashMobileMenu';
|
||||||
import AdminAuthorization from '@components/Security/AdminAuthorization'
|
import AdminAuthorization from '@components/Security/AdminAuthorization'
|
||||||
import { SessionProvider } from 'next-auth/react'
|
import { SessionProvider } from 'next-auth/react'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { useAssignments } from '@components/Contexts/Assignments/AssignmentConte
|
||||||
import { useAssignmentsTask, useAssignmentsTaskDispatch } from '@components/Contexts/Assignments/AssignmentsTaskContext';
|
import { useAssignmentsTask, useAssignmentsTaskDispatch } from '@components/Contexts/Assignments/AssignmentsTaskContext';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { useOrg } from '@components/Contexts/OrgContext';
|
import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import FormLayout, { FormField, FormLabelAndMessage, Input, Textarea } from '@components/StyledElements/Form/Form';
|
import FormLayout, { FormField, FormLabelAndMessage, Input, Textarea } from '@components/Objects/StyledElements/Form/Form';
|
||||||
import * as Form from '@radix-ui/react-form';
|
import * as Form from '@radix-ui/react-form';
|
||||||
import { getActivityByID } from '@services/courses/activities';
|
import { getActivityByID } from '@services/courses/activities';
|
||||||
import { updateAssignmentTask, updateReferenceFile } from '@services/courses/assignments';
|
import { updateAssignmentTask, updateReferenceFile } from '@services/courses/assignments';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useAssignments } from '@components/Contexts/Assignments/AssignmentContext'
|
import { useAssignments } from '@components/Contexts/Assignments/AssignmentContext'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import { FileUp, ListTodo, PanelLeftOpen, Plus } from 'lucide-react';
|
import { FileUp, ListTodo, PanelLeftOpen, Plus } from 'lucide-react';
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import NewTaskModal from './Modals/NewTaskModal';
|
import NewTaskModal from './Modals/NewTaskModal';
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
'use client';
|
'use client';
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import { BookOpen, BookX, EllipsisVertical, Eye, Layers2, Monitor, UserRoundPen } from 'lucide-react'
|
import { BookOpen, BookX, EllipsisVertical, Eye, Layers2, Monitor, UserRoundPen } from 'lucide-react'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { AssignmentProvider, useAssignments } from '@components/Contexts/Assignments/AssignmentContext';
|
import { AssignmentProvider, useAssignments } from '@components/Contexts/Assignments/AssignmentContext';
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip';
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip';
|
||||||
import { updateAssignment } from '@services/courses/assignments';
|
import { updateAssignment } from '@services/courses/assignments';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { mutate } from 'swr';
|
import { mutate } from 'swr';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import UserAvatar from '@components/Objects/UserAvatar';
|
import UserAvatar from '@components/Objects/UserAvatar';
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import { getAPIUrl } from '@services/config/config';
|
import { getAPIUrl } from '@services/config/config';
|
||||||
import { getUserAvatarMediaDirectory } from '@services/media/media';
|
import { getUserAvatarMediaDirectory } from '@services/media/media';
|
||||||
import { swrFetcher } from '@services/utils/ts/requests';
|
import { swrFetcher } from '@services/utils/ts/requests';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client';
|
'use client';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { useOrg } from '@components/Contexts/OrgContext';
|
import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import { getAPIUrl, getUriWithOrg } from '@services/config/config';
|
import { getAPIUrl, getUriWithOrg } from '@services/config/config';
|
||||||
import { getAssignmentsFromACourse } from '@services/courses/assignments';
|
import { getAssignmentsFromACourse } from '@services/courses/assignments';
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media';
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media';
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
'use client'
|
'use client'
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import CreateCourseModal from '@components/Objects/Modals/Course/Create/CreateCourse'
|
import CreateCourseModal from '@components/Objects/Modals/Course/Create/CreateCourse'
|
||||||
import CourseThumbnail, { removeCoursePrefix } from '@components/Objects/Thumbnails/CourseThumbnail'
|
import CourseThumbnail, { removeCoursePrefix } from '@components/Objects/Thumbnails/CourseThumbnail'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import NewCourseButton from '@components/StyledElements/Buttons/NewCourseButton'
|
import NewCourseButton from '@components/Objects/StyledElements/Buttons/NewCourseButton'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import { useSearchParams } from 'next/navigation'
|
import { useSearchParams } from 'next/navigation'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import useAdminStatus from '@components/Hooks/useAdminStatus'
|
import useAdminStatus from '@components/Hooks/useAdminStatus'
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
'use client'
|
'use client'
|
||||||
import EditCourseStructure from '../../../../../../../../components/Dashboard/Course/EditCourseStructure/EditCourseStructure'
|
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { CourseProvider } from '../../../../../../../../components/Contexts/CourseContext'
|
import { CourseProvider } from '../../../../../../../../components/Contexts/CourseContext'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { CourseOverviewTop } from '@components/Dashboard/UI/CourseOverviewTop'
|
import { CourseOverviewTop } from '@components/Dashboard/Misc/CourseOverviewTop'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import EditCourseGeneral from '@components/Dashboard/Course/EditCourseGeneral/EditCourseGeneral'
|
|
||||||
import { GalleryVerticalEnd, Info, UserRoundCog } from 'lucide-react'
|
import { GalleryVerticalEnd, Info, UserRoundCog } from 'lucide-react'
|
||||||
import EditCourseAccess from '@components/Dashboard/Course/EditCourseAccess/EditCourseAccess'
|
import EditCourseStructure from '@components/Dashboard/Pages/Course/EditCourseStructure/EditCourseStructure'
|
||||||
|
import EditCourseGeneral from '@components/Dashboard/Pages/Course/EditCourseGeneral/EditCourseGeneral'
|
||||||
|
import EditCourseAccess from '@components/Dashboard/Pages/Course/EditCourseAccess/EditCourseAccess'
|
||||||
|
|
||||||
export type CourseOverviewParams = {
|
export type CourseOverviewParams = {
|
||||||
orgslug: string
|
orgslug: string
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
'use client'
|
'use client'
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { Info } from 'lucide-react'
|
import { Info } from 'lucide-react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import OrgEditGeneral from '@components/Dashboard/Org/OrgEditGeneral/OrgEditGeneral'
|
import OrgEditGeneral from '@components/Dashboard/Pages/Org/OrgEditGeneral/OrgEditGeneral'
|
||||||
|
|
||||||
export type OrgParams = {
|
export type OrgParams = {
|
||||||
subpage: string
|
subpage: string
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
'use client'
|
'use client'
|
||||||
import React, { useState, useEffect } from 'react'
|
import React, { useState, useEffect } from 'react'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { CreditCard, Settings, Repeat, BookOpen, Users, DollarSign, Gem } from 'lucide-react'
|
import { CreditCard, Settings, Repeat, BookOpen, Users, DollarSign, Gem } from 'lucide-react'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import PaymentsConfigurationPage from '@components/Dashboard/Payments/PaymentsConfigurationPage'
|
import PaymentsConfigurationPage from '@components/Dashboard/Pages/Payments/PaymentsConfigurationPage'
|
||||||
import PaymentsProductPage from '@components/Dashboard/Payments/PaymentsProductPage'
|
import PaymentsProductPage from '@components/Dashboard/Pages/Payments/PaymentsProductPage'
|
||||||
import PaymentsCustomersPage from '@components/Dashboard/Payments/PaymentsCustomersPage'
|
import PaymentsCustomersPage from '@components/Dashboard/Pages/Payments/PaymentsCustomersPage'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
'use client'
|
'use client'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { motion } from 'framer-motion'
|
import { motion } from 'framer-motion'
|
||||||
import UserEditGeneral from '@components/Dashboard/UserAccount/UserEditGeneral/UserEditGeneral'
|
import UserEditGeneral from '@components/Dashboard/Pages/UserAccount/UserEditGeneral/UserEditGeneral'
|
||||||
import UserEditPassword from '@components/Dashboard/UserAccount/UserEditPassword/UserEditPassword'
|
import UserEditPassword from '@components/Dashboard/Pages/UserAccount/UserEditPassword/UserEditPassword'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { Info, Lock } from 'lucide-react'
|
import { Info, Lock } from 'lucide-react'
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
export type SettingsParams = {
|
export type SettingsParams = {
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ import Link from 'next/link'
|
||||||
import { useMediaQuery } from 'usehooks-ts'
|
import { useMediaQuery } from 'usehooks-ts'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { Monitor, ScanEye, SquareUserRound, UserPlus, Users } from 'lucide-react'
|
import { Monitor, ScanEye, SquareUserRound, UserPlus, Users } from 'lucide-react'
|
||||||
import BreadCrumbs from '@components/Dashboard/UI/BreadCrumbs'
|
import BreadCrumbs from '@components/Dashboard/Misc/BreadCrumbs'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import OrgUsers from '@components/Dashboard/Users/OrgUsers/OrgUsers'
|
import OrgUsers from '@components/Dashboard/Pages/Users/OrgUsers/OrgUsers'
|
||||||
import OrgAccess from '@components/Dashboard/Users/OrgAccess/OrgAccess'
|
import OrgAccess from '@components/Dashboard/Pages/Users/OrgAccess/OrgAccess'
|
||||||
import OrgUsersAdd from '@components/Dashboard/Users/OrgUsersAdd/OrgUsersAdd'
|
import OrgUsersAdd from '@components/Dashboard/Pages/Users/OrgUsersAdd/OrgUsersAdd'
|
||||||
import OrgUserGroups from '@components/Dashboard/Users/OrgUserGroups/OrgUserGroups'
|
import OrgUserGroups from '@components/Dashboard/Pages/Users/OrgUserGroups/OrgUserGroups'
|
||||||
|
|
||||||
export type SettingsParams = {
|
export type SettingsParams = {
|
||||||
subpage: string
|
subpage: string
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { OrgProvider } from '@components/Contexts/OrgContext'
|
import { OrgProvider } from '@components/Contexts/OrgContext'
|
||||||
import NextTopLoader from 'nextjs-toploader';
|
import NextTopLoader from 'nextjs-toploader';
|
||||||
import Toast from '@components/StyledElements/Toast/Toast'
|
import Toast from '@components/Objects/StyledElements/Toast/Toast'
|
||||||
import '@styles/globals.css'
|
import '@styles/globals.css'
|
||||||
import Onboarding from '@components/Onboarding/Onboarding';
|
import Onboarding from '@components/Objects/Onboarding/Onboarding';
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,8 @@ import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
import React, { createContext, useContext, useMemo } from 'react'
|
import React, { createContext, useContext, useMemo } from 'react'
|
||||||
import useSWR from 'swr'
|
import useSWR from 'swr'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import ErrorUI from '@components/StyledElements/Error/Error'
|
import ErrorUI from '@components/Objects/StyledElements/Error/Error'
|
||||||
import InfoUI from '@components/StyledElements/Info/Info'
|
import InfoUI from '@components/Objects/StyledElements/Info/Info'
|
||||||
import { usePathname } from 'next/navigation'
|
import { usePathname } from 'next/navigation'
|
||||||
|
|
||||||
export const OrgContext = createContext(null)
|
export const OrgContext = createContext(null)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import { signOut } from 'next-auth/react'
|
import { signOut } from 'next-auth/react'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
import LearnHouseDashboardLogo from '@public/dashLogo.png'
|
import LearnHouseDashboardLogo from '@public/dashLogo.png'
|
||||||
import { Backpack, BadgeDollarSign, BookCopy, Home, LogOut, Package2, School, Settings, Users, Vault } from 'lucide-react'
|
import { Backpack, BadgeDollarSign, BookCopy, Home, LogOut, Package2, School, Settings, Users, Vault } from 'lucide-react'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
|
|
@ -7,7 +7,7 @@ import React from 'react'
|
||||||
import AdminAuthorization from '@components/Security/AdminAuthorization'
|
import AdminAuthorization from '@components/Security/AdminAuthorization'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { getUriWithOrg, getUriWithoutOrg } from '@services/config/config'
|
import { getUriWithOrg, getUriWithoutOrg } from '@services/config/config'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
|
|
||||||
function DashMobileMenu() {
|
function DashMobileMenu() {
|
||||||
const org = useOrg() as any
|
const org = useOrg() as any
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { useCourse, useCourseDispatch } from '@components/Contexts/CourseContext'
|
import { useCourse, useCourseDispatch } from '@components/Contexts/CourseContext'
|
||||||
import LinkToUserGroup from '@components/Objects/Modals/Dash/EditCourseAccess/LinkToUserGroup'
|
import LinkToUserGroup from '@components/Objects/Modals/Dash/EditCourseAccess/LinkToUserGroup'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { unLinkResourcesToUserGroup } from '@services/usergroups/usergroups'
|
import { unLinkResourcesToUserGroup } from '@services/usergroups/usergroups'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
|
|
@ -3,13 +3,13 @@ import FormLayout, {
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
Textarea,
|
Textarea,
|
||||||
} from '@components/StyledElements/Form/Form';
|
} from '@components/Objects/StyledElements/Form/Form';
|
||||||
import { useFormik } from 'formik';
|
import { useFormik } from 'formik';
|
||||||
import { AlertTriangle } from 'lucide-react';
|
import { AlertTriangle } from 'lucide-react';
|
||||||
import * as Form from '@radix-ui/react-form';
|
import * as Form from '@radix-ui/react-form';
|
||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import { useCourse, useCourseDispatch } from '../../../Contexts/CourseContext';
|
|
||||||
import ThumbnailUpdate from './ThumbnailUpdate';
|
import ThumbnailUpdate from './ThumbnailUpdate';
|
||||||
|
import { useCourse, useCourseDispatch } from '@components/Contexts/CourseContext';
|
||||||
|
|
||||||
type EditCourseStructureProps = {
|
type EditCourseStructureProps = {
|
||||||
orgslug: string
|
orgslug: string
|
||||||
|
|
@ -3,7 +3,7 @@ import { createApi } from 'unsplash-js';
|
||||||
import { Search, X, Cpu, Briefcase, GraduationCap, Heart, Palette, Plane, Utensils,
|
import { Search, X, Cpu, Briefcase, GraduationCap, Heart, Palette, Plane, Utensils,
|
||||||
Dumbbell, Music, Shirt, Book, Building, Bike, Camera, Microscope, Coins, Coffee, Gamepad,
|
Dumbbell, Music, Shirt, Book, Building, Bike, Camera, Microscope, Coins, Coffee, Gamepad,
|
||||||
Flower} from 'lucide-react';
|
Flower} from 'lucide-react';
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
|
|
||||||
const unsplash = createApi({
|
const unsplash = createApi({
|
||||||
accessKey: process.env.NEXT_PUBLIC_UNSPLASH_ACCESS_KEY as string,
|
accessKey: process.env.NEXT_PUBLIC_UNSPLASH_ACCESS_KEY as string,
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useCourse } from '@components/Contexts/CourseContext'
|
import { useCourse } from '@components/Contexts/CourseContext'
|
||||||
import NewActivityModal from '@components/Objects/Modals/Activities/Create/NewActivity'
|
import NewActivityModal from '@components/Objects/Modals/Activities/Create/NewActivity'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import {
|
import {
|
||||||
createActivity,
|
createActivity,
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { getAPIUrl, getUriWithOrg } from '@services/config/config'
|
import { getAPIUrl, getUriWithOrg } from '@services/config/config'
|
||||||
import { deleteActivity, updateActivity } from '@services/courses/activities'
|
import { deleteActivity, updateActivity } from '@services/courses/activities'
|
||||||
import { revalidateTags } from '@services/utils/ts/requests'
|
import { revalidateTags } from '@services/utils/ts/requests'
|
||||||
|
|
@ -28,7 +28,7 @@ import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import { useCourse } from '@components/Contexts/CourseContext'
|
import { useCourse } from '@components/Contexts/CourseContext'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { useMediaQuery } from 'usehooks-ts'
|
import { useMediaQuery } from 'usehooks-ts'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
|
|
||||||
type ActivitiyElementProps = {
|
type ActivitiyElementProps = {
|
||||||
orgslug: string
|
orgslug: string
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import {
|
import {
|
||||||
Hexagon,
|
Hexagon,
|
||||||
MoreHorizontal,
|
MoreHorizontal,
|
||||||
|
|
@ -13,7 +13,7 @@ import {
|
||||||
useCourseDispatch,
|
useCourseDispatch,
|
||||||
} from '@components/Contexts/CourseContext'
|
} from '@components/Contexts/CourseContext'
|
||||||
import { Hexagon } from 'lucide-react'
|
import { Hexagon } from 'lucide-react'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import NewChapterModal from '@components/Objects/Modals/Chapters/NewChapter'
|
import NewChapterModal from '@components/Objects/Modals/Chapters/NewChapter'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@ import { useRouter } from 'next/navigation'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { getOrgLogoMediaDirectory, getOrgThumbnailMediaDirectory } from '@services/media/media'
|
import { getOrgLogoMediaDirectory, getOrgThumbnailMediaDirectory } from '@services/media/media'
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@components/Ui/tabs"
|
||||||
import { Toaster, toast } from 'react-hot-toast';
|
import { Toaster, toast } from 'react-hot-toast';
|
||||||
import { constructAcceptValue } from '@/lib/constants';
|
import { constructAcceptValue } from '@/lib/constants';
|
||||||
|
|
||||||
|
|
@ -4,14 +4,14 @@ import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import { SiStripe } from '@icons-pack/react-simple-icons'
|
import { SiStripe } from '@icons-pack/react-simple-icons'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { getPaymentConfigs, initializePaymentConfig, updatePaymentConfig, deletePaymentConfig, updateStripeAccountID, getStripeOnboardingLink } from '@services/payments/payments';
|
import { getPaymentConfigs, initializePaymentConfig, updatePaymentConfig, deletePaymentConfig, updateStripeAccountID, getStripeOnboardingLink } from '@services/payments/payments';
|
||||||
import FormLayout, { ButtonBlack, Input, Textarea, FormField, FormLabelAndMessage, Flex } from '@components/StyledElements/Form/Form';
|
import FormLayout, { ButtonBlack, Input, Textarea, FormField, FormLabelAndMessage, Flex } from '@components/Objects/StyledElements/Form/Form';
|
||||||
import { AlertTriangle, BarChart2, Check, Coins, CreditCard, Edit, ExternalLink, Info, Loader2, RefreshCcw, Trash2, UnplugIcon } from 'lucide-react';
|
import { AlertTriangle, BarChart2, Check, Coins, CreditCard, Edit, ExternalLink, Info, Loader2, RefreshCcw, Trash2, UnplugIcon } from 'lucide-react';
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
import useSWR, { mutate } from 'swr';
|
import useSWR, { mutate } from 'swr';
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal';
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal';
|
||||||
import { Button } from '@components/ui/button';
|
import { Button } from '@components/Ui/button';
|
||||||
import { Alert, AlertDescription, AlertTitle } from '@components/ui/alert';
|
import { Alert, AlertDescription, AlertTitle } from '@components/Ui/alert';
|
||||||
import { useRouter } from 'next/navigation';
|
import { useRouter } from 'next/navigation';
|
||||||
import { getUriWithoutOrg } from '@services/config/config';
|
import { getUriWithoutOrg } from '@services/config/config';
|
||||||
|
|
||||||
|
|
@ -9,15 +9,15 @@ import {
|
||||||
TableHead,
|
TableHead,
|
||||||
TableHeader,
|
TableHeader,
|
||||||
TableRow,
|
TableRow,
|
||||||
} from "@/components/ui/table"
|
} from "@components/Ui/table"
|
||||||
import { getOrgCustomers } from '@services/payments/payments'
|
import { getOrgCustomers } from '@services/payments/payments'
|
||||||
import { Badge } from '@/components/ui/badge'
|
import { Badge } from '@components/Ui/badge'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import { RefreshCcw, SquareCheck } from 'lucide-react'
|
import { RefreshCcw, SquareCheck } from 'lucide-react'
|
||||||
import { getUserAvatarMediaDirectory } from '@services/media/media'
|
import { getUserAvatarMediaDirectory } from '@services/media/media'
|
||||||
import UserAvatar from '@components/Objects/UserAvatar'
|
import UserAvatar from '@components/Objects/UserAvatar'
|
||||||
import { usePaymentsEnabled } from '@hooks/usePaymentsEnabled'
|
import { usePaymentsEnabled } from '@hooks/usePaymentsEnabled'
|
||||||
import UnconfiguredPaymentsDisclaimer from '../../Pages/Payments/UnconfiguredPaymentsDisclaimer'
|
import UnconfiguredPaymentsDisclaimer from '@components/Pages/Payments/UnconfiguredPaymentsDisclaimer'
|
||||||
|
|
||||||
interface PaymentUserData {
|
interface PaymentUserData {
|
||||||
payment_user_id: number;
|
payment_user_id: number;
|
||||||
|
|
@ -5,26 +5,23 @@ import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import useSWR, { mutate } from 'swr';
|
import useSWR, { mutate } from 'swr';
|
||||||
import { getProducts, updateProduct, archiveProduct } from '@services/payments/products';
|
import { getProducts, updateProduct, archiveProduct } from '@services/payments/products';
|
||||||
import CreateProductForm from '@components/Dashboard/Payments/SubComponents/CreateProductForm';
|
import { Plus, Pencil, Info, RefreshCcw, SquareCheck, ChevronDown, ChevronUp, Archive } from 'lucide-react';
|
||||||
import { Plus, Trash2, Pencil, Info, RefreshCcw, SquareCheck, ChevronDown, ChevronUp, Archive } from 'lucide-react';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal';
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal';
|
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@components/Ui/select"
|
||||||
import { Button } from "@/components/ui/button"
|
import { Button } from "@components/Ui/button"
|
||||||
import { Input } from "@/components/ui/input"
|
import { Input } from "@components/Ui/input"
|
||||||
import { Textarea } from "@/components/ui/textarea"
|
import { Textarea } from "@components/Ui/textarea"
|
||||||
import { Formik, Form, Field, ErrorMessage } from 'formik';
|
import { Formik, Form, Field, ErrorMessage } from 'formik';
|
||||||
import * as Yup from 'yup';
|
import * as Yup from 'yup';
|
||||||
import { Label } from '@components/ui/label';
|
import { Label } from '@components/Ui/label';
|
||||||
import { Badge } from '@components/ui/badge';
|
import { Badge } from '@components/Ui/badge';
|
||||||
import { getPaymentConfigs } from '@services/payments/payments';
|
import { getPaymentConfigs } from '@services/payments/payments';
|
||||||
import ProductLinkedCourses from './SubComponents/ProductLinkedCourses';
|
import ProductLinkedCourses from './SubComponents/ProductLinkedCourses';
|
||||||
import { AlertTriangle, Settings, CreditCard, ShoppingCart, Users, ChevronRight } from 'lucide-react';
|
|
||||||
import Link from 'next/link';
|
|
||||||
import { usePaymentsEnabled } from '@hooks/usePaymentsEnabled';
|
import { usePaymentsEnabled } from '@hooks/usePaymentsEnabled';
|
||||||
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
import UnconfiguredPaymentsDisclaimer from '@components/Pages/Payments/UnconfiguredPaymentsDisclaimer';
|
||||||
import UnconfiguredPaymentsDisclaimer from '../../Pages/Payments/UnconfiguredPaymentsDisclaimer';
|
import CreateProductForm from './SubComponents/CreateProductForm';
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
name: Yup.string().required('Name is required'),
|
name: Yup.string().required('Name is required'),
|
||||||
|
|
@ -6,11 +6,11 @@ import { Formik, Form, Field, ErrorMessage } from 'formik';
|
||||||
import * as Yup from 'yup';
|
import * as Yup from 'yup';
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
import { mutate } from 'swr';
|
import { mutate } from 'swr';
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@components/Ui/button";
|
||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@components/Ui/input";
|
||||||
import { Textarea } from "@/components/ui/textarea";
|
import { Textarea } from "@components/Ui/textarea";
|
||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@components/Ui/select";
|
||||||
import { Label } from "@/components/ui/label";
|
import { Label } from "@components/Ui/label";
|
||||||
import currencyCodes from 'currency-codes';
|
import currencyCodes from 'currency-codes';
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
|
|
@ -2,8 +2,8 @@ import React, { useState } from 'react';
|
||||||
import { useOrg } from '@components/Contexts/OrgContext';
|
import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { linkCourseToProduct } from '@services/payments/products';
|
import { linkCourseToProduct } from '@services/payments/products';
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@components/Ui/button";
|
||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@components/Ui/input";
|
||||||
import { Search } from 'lucide-react';
|
import { Search } from 'lucide-react';
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
import { mutate } from 'swr';
|
import { mutate } from 'swr';
|
||||||
|
|
@ -3,10 +3,10 @@ import { getCoursesLinkedToProduct, unlinkCourseFromProduct } from '@services/pa
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
import { useLHSession } from '@components/Contexts/LHSessionContext';
|
||||||
import { useOrg } from '@components/Contexts/OrgContext';
|
import { useOrg } from '@components/Contexts/OrgContext';
|
||||||
import { Trash2, Plus, BookOpen } from 'lucide-react';
|
import { Trash2, Plus, BookOpen } from 'lucide-react';
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@components/Ui/button";
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
import { mutate } from 'swr';
|
import { mutate } from 'swr';
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import LinkCourseModal from './LinkCourseModal';
|
import LinkCourseModal from './LinkCourseModal';
|
||||||
|
|
||||||
interface ProductLinkedCoursesProps {
|
interface ProductLinkedCoursesProps {
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { getAPIUrl, getUriWithOrg } from '@services/config/config'
|
import { getAPIUrl, getUriWithOrg } from '@services/config/config'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
import { Globe, Ticket, UserSquare, Users, X } from 'lucide-react'
|
import { Globe, Ticket, UserSquare, Users, X } from 'lucide-react'
|
||||||
|
|
@ -14,7 +14,7 @@ import {
|
||||||
} from '@services/organizations/invites'
|
} from '@services/organizations/invites'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { useRouter } from 'next/navigation'
|
import { useRouter } from 'next/navigation'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import OrgInviteCodeGenerate from '@components/Objects/Modals/Dash/OrgAccess/OrgInviteCodeGenerate'
|
import OrgInviteCodeGenerate from '@components/Objects/Modals/Dash/OrgAccess/OrgInviteCodeGenerate'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
|
|
@ -4,8 +4,8 @@ import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import AddUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup'
|
import AddUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup'
|
||||||
import EditUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/EditUserGroup'
|
import EditUserGroup from '@components/Objects/Modals/Dash/OrgUserGroups/EditUserGroup'
|
||||||
import ManageUsers from '@components/Objects/Modals/Dash/OrgUserGroups/ManageUsers'
|
import ManageUsers from '@components/Objects/Modals/Dash/OrgUserGroups/ManageUsers'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { deleteUserGroup } from '@services/usergroups/usergroups'
|
import { deleteUserGroup } from '@services/usergroups/usergroups'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
|
|
@ -2,9 +2,9 @@ import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import RolesUpdate from '@components/Objects/Modals/Dash/OrgUsers/RolesUpdate'
|
import RolesUpdate from '@components/Objects/Modals/Dash/OrgUsers/RolesUpdate'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import Toast from '@components/StyledElements/Toast/Toast'
|
import Toast from '@components/Objects/StyledElements/Toast/Toast'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { removeUserFromOrg } from '@services/organizations/orgs'
|
import { removeUserFromOrg } from '@services/organizations/orgs'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
import PageLoading from '@components/Objects/Loaders/PageLoading'
|
||||||
import Toast from '@components/StyledElements/Toast/Toast'
|
import Toast from '@components/Objects/StyledElements/Toast/Toast'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
import { inviteBatchUsers } from '@services/organizations/invites'
|
import { inviteBatchUsers } from '@services/organizations/invites'
|
||||||
import { swrFetcher } from '@services/utils/ts/requests'
|
import { swrFetcher } from '@services/utils/ts/requests'
|
||||||
|
|
@ -15,7 +15,7 @@ import {
|
||||||
useAIChatBot,
|
useAIChatBot,
|
||||||
useAIChatBotDispatch,
|
useAIChatBotDispatch,
|
||||||
} from '@components/Contexts/AI/AIChatBotContext'
|
} from '@components/Contexts/AI/AIChatBotContext'
|
||||||
import useGetAIFeatures from '../../../AI/Hooks/useGetAIFeatures'
|
import useGetAIFeatures from '../../../Hooks/useGetAIFeatures'
|
||||||
import UserAvatar from '@components/Objects/UserAvatar'
|
import UserAvatar from '@components/Objects/UserAvatar'
|
||||||
|
|
||||||
type AIActivityAskProps = {
|
type AIActivityAskProps = {
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import learnhouseAI_icon from 'public/learnhouse_ai_simple.png'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
import { BookOpen, FormInput, Languages, MoreVertical } from 'lucide-react'
|
import { BookOpen, FormInput, Languages, MoreVertical } from 'lucide-react'
|
||||||
import { BubbleMenu } from '@tiptap/react'
|
import { BubbleMenu } from '@tiptap/react'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
import {
|
import {
|
||||||
AIChatBotStateTypes,
|
AIChatBotStateTypes,
|
||||||
useAIChatBot,
|
useAIChatBot,
|
||||||
|
|
@ -14,7 +14,7 @@ import {
|
||||||
sendActivityAIChatMessage,
|
sendActivityAIChatMessage,
|
||||||
startActivityAIChatSession,
|
startActivityAIChatSession,
|
||||||
} from '@services/ai/ai'
|
} from '@services/ai/ai'
|
||||||
import useGetAIFeatures from '../../../../AI/Hooks/useGetAIFeatures'
|
import useGetAIFeatures from '../../../../Hooks/useGetAIFeatures'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
type AICanvaToolkitProps = {
|
type AICanvaToolkitProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
'use client';
|
'use client';
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import useAdminStatus from './Hooks/useAdminStatus'
|
import useAdminStatus from '../Hooks/useAdminStatus'
|
||||||
|
|
||||||
|
|
||||||
// Terrible name and terible implementation, need to be refactored asap
|
// Terrible name and terible implementation, need to be refactored asap
|
||||||
|
|
@ -4,8 +4,8 @@ import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import useSWR from 'swr'
|
import useSWR from 'swr'
|
||||||
import { getProductsByCourse, getStripeProductCheckoutSession } from '@services/payments/products'
|
import { getProductsByCourse, getStripeProductCheckoutSession } from '@services/payments/products'
|
||||||
import { RefreshCcw, SquareCheck, ChevronDown, ChevronUp } from 'lucide-react'
|
import { RefreshCcw, SquareCheck, ChevronDown, ChevronUp } from 'lucide-react'
|
||||||
import { Badge } from '@components/ui/badge'
|
import { Badge } from '@components/Ui/badge'
|
||||||
import { Button } from '@components/ui/button'
|
import { Button } from '@components/Ui/button'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { useRouter } from 'next/navigation'
|
import { useRouter } from 'next/navigation'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import { useMediaQuery } from 'usehooks-ts'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { getProductsByCourse } from '@services/payments/products'
|
import { getProductsByCourse } from '@services/payments/products'
|
||||||
import { LogIn, LogOut, ShoppingCart, AlertCircle } from 'lucide-react'
|
import { LogIn, LogOut, ShoppingCart, AlertCircle } from 'lucide-react'
|
||||||
import Modal from '@components/StyledElements/Modal/Modal'
|
import Modal from '@components/Objects/StyledElements/Modal/Modal'
|
||||||
import CoursePaidOptions from './CoursePaidOptions'
|
import CoursePaidOptions from './CoursePaidOptions'
|
||||||
import { checkPaidAccess } from '@services/payments/payments'
|
import { checkPaidAccess } from '@services/payments/payments'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import FormLayout, {
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
Textarea,
|
Textarea,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import { useCourse } from '@components/Contexts/CourseContext'
|
import { useCourse } from '@components/Contexts/CourseContext'
|
||||||
import useSWR, { mutate } from 'swr'
|
import useSWR, { mutate } from 'swr'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
|
|
@ -17,7 +17,7 @@ import useAdminStatus from '@components/Hooks/useAdminStatus'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import { createCourseUpdate, deleteCourseUpdate } from '@services/courses/updates'
|
import { createCourseUpdate, deleteCourseUpdate } from '@services/courses/updates'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import {
|
||||||
sendActivityAIChatMessage,
|
sendActivityAIChatMessage,
|
||||||
startActivityAIChatSession,
|
startActivityAIChatSession,
|
||||||
} from '@services/ai/ai'
|
} from '@services/ai/ai'
|
||||||
import useGetAIFeatures from '@components/AI/Hooks/useGetAIFeatures'
|
import useGetAIFeatures from '@components/Hooks/useGetAIFeatures'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
type AIEditorToolkitProps = {
|
type AIEditorToolkitProps = {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import Table from '@tiptap/extension-table'
|
||||||
import TableCell from '@tiptap/extension-table-cell'
|
import TableCell from '@tiptap/extension-table-cell'
|
||||||
import TableHeader from '@tiptap/extension-table-header'
|
import TableHeader from '@tiptap/extension-table-header'
|
||||||
import TableRow from '@tiptap/extension-table-row'
|
import TableRow from '@tiptap/extension-table-row'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
|
||||||
|
|
@ -47,7 +47,7 @@ import java from 'highlight.js/lib/languages/java'
|
||||||
import { CourseProvider } from '@components/Contexts/CourseContext'
|
import { CourseProvider } from '@components/Contexts/CourseContext'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import AIEditorToolkit from './AI/AIEditorToolkit'
|
import AIEditorToolkit from './AI/AIEditorToolkit'
|
||||||
import useGetAIFeatures from '@components/AI/Hooks/useGetAIFeatures'
|
import useGetAIFeatures from '@components/Hooks/useGetAIFeatures'
|
||||||
import Collaboration from '@tiptap/extension-collaboration'
|
import Collaboration from '@tiptap/extension-collaboration'
|
||||||
import CollaborationCursor from '@tiptap/extension-collaboration-cursor'
|
import CollaborationCursor from '@tiptap/extension-collaboration-cursor'
|
||||||
import ActiveAvatars from './ActiveAvatars'
|
import ActiveAvatars from './ActiveAvatars'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { default as React, useEffect, useRef, useState } from 'react'
|
||||||
import Editor from './Editor'
|
import Editor from './Editor'
|
||||||
import { updateActivity } from '@services/courses/activities'
|
import { updateActivity } from '@services/courses/activities'
|
||||||
import { toast } from 'react-hot-toast'
|
import { toast } from 'react-hot-toast'
|
||||||
import Toast from '@components/StyledElements/Toast/Toast'
|
import Toast from '@components/Objects/StyledElements/Toast/Toast'
|
||||||
import { OrgProvider } from '@components/Contexts/OrgContext'
|
import { OrgProvider } from '@components/Contexts/OrgContext'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import {
|
||||||
Video,
|
Video,
|
||||||
} from 'lucide-react'
|
} from 'lucide-react'
|
||||||
import { SiYoutube } from '@icons-pack/react-simple-icons'
|
import { SiYoutube } from '@icons-pack/react-simple-icons'
|
||||||
import ToolTip from '@components/StyledElements/Tooltip/Tooltip'
|
import ToolTip from '@components/Objects/StyledElements/Tooltip/Tooltip'
|
||||||
|
|
||||||
export const ToolbarButtons = ({ editor, props }: any) => {
|
export const ToolbarButtons = ({ editor, props }: any) => {
|
||||||
if (!editor) {
|
if (!editor) {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import FormLayout, {
|
||||||
FormMessage,
|
FormMessage,
|
||||||
Input,
|
Input,
|
||||||
|
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { BarLoader } from 'react-spinners'
|
import { BarLoader } from 'react-spinners'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import FormLayout, {
|
||||||
FormLabel,
|
FormLabel,
|
||||||
FormMessage,
|
FormMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import BarLoader from 'react-spinners/BarLoader'
|
import BarLoader from 'react-spinners/BarLoader'
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import FormLayout, {
|
||||||
FormMessage,
|
FormMessage,
|
||||||
Input,
|
Input,
|
||||||
Textarea,
|
Textarea,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import BarLoader from 'react-spinners/BarLoader'
|
import BarLoader from 'react-spinners/BarLoader'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import FormLayout, {
|
||||||
FormLabel,
|
FormLabel,
|
||||||
FormMessage,
|
FormMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import BarLoader from 'react-spinners/BarLoader'
|
import BarLoader from 'react-spinners/BarLoader'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import FormLayout, {
|
||||||
Textarea,
|
Textarea,
|
||||||
FormLabel,
|
FormLabel,
|
||||||
ButtonBlack,
|
ButtonBlack,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import { FormMessage } from '@radix-ui/react-form'
|
import { FormMessage } from '@radix-ui/react-form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { Input } from "@/components/ui/input"
|
import { Input } from "@components/Ui/input"
|
||||||
import { Textarea } from "@/components/ui/textarea"
|
import { Textarea } from "@components/Ui/textarea"
|
||||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@components/Ui/select"
|
||||||
import { Label } from "@/components/ui/label"
|
|
||||||
import FormLayout, {
|
import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { createNewCourse } from '@services/courses/courses'
|
import { createNewCourse } from '@services/courses/courses'
|
||||||
import { getOrganizationContextInfoWithoutCredentials } from '@services/organizations/orgs'
|
import { getOrganizationContextInfoWithoutCredentials } from '@services/organizations/orgs'
|
||||||
|
|
@ -18,9 +17,8 @@ import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
import toast from 'react-hot-toast'
|
import toast from 'react-hot-toast'
|
||||||
import { useFormik } from 'formik'
|
import { useFormik } from 'formik'
|
||||||
import * as Yup from 'yup'
|
import * as Yup from 'yup'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { UploadCloud, Image as ImageIcon } from 'lucide-react'
|
||||||
import { ArrowBigUpDash, UploadCloud, Image as ImageIcon } from 'lucide-react'
|
import UnsplashImagePicker from "@components/Dashboard/Pages/Course/EditCourseGeneral/UnsplashImagePicker"
|
||||||
import UnsplashImagePicker from "@components/Dashboard/Course/EditCourseGeneral/UnsplashImagePicker"
|
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
name: Yup.string()
|
name: Yup.string()
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import FormLayout, {
|
||||||
FormField,
|
FormField,
|
||||||
FormLabelAndMessage,
|
FormLabelAndMessage,
|
||||||
Input,
|
Input,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import FormLayout, {
|
||||||
Flex,
|
Flex,
|
||||||
FormField,
|
FormField,
|
||||||
FormLabel,
|
FormLabel,
|
||||||
} from '@components/StyledElements/Form/Form'
|
} from '@components/Objects/StyledElements/Form/Form'
|
||||||
import * as Form from '@radix-ui/react-form'
|
import * as Form from '@radix-ui/react-form'
|
||||||
import { FormMessage } from '@radix-ui/react-form'
|
import { FormMessage } from '@radix-ui/react-form'
|
||||||
import { getAPIUrl } from '@services/config/config'
|
import { getAPIUrl } from '@services/config/config'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Modal from '@components/StyledElements/Modal/Modal';
|
import Modal from '@components/Objects/StyledElements/Modal/Modal';
|
||||||
import Image, { StaticImageData } from 'next/image';
|
import Image, { StaticImageData } from 'next/image';
|
||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import OnBoardWelcome from '@public/onboarding/OnBoardWelcome.png';
|
import OnBoardWelcome from '@public/onboarding/OnBoardWelcome.png';
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, DialogFooter } from "@/components/ui/dialog"
|
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, DialogFooter } from "@components/Ui/dialog"
|
||||||
import { ButtonBlack } from '../Form/Form'
|
import { ButtonBlack } from '../Form/Form'
|
||||||
import { cn } from "@/lib/utils"
|
import { cn } from "@/lib/utils"
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { deleteCollection } from '@services/courses/collections'
|
import { deleteCollection } from '@services/courses/collections'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
'use client'
|
'use client'
|
||||||
import { useOrg } from '@components/Contexts/OrgContext'
|
import { useOrg } from '@components/Contexts/OrgContext'
|
||||||
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
import AuthenticatedClientElement from '@components/Security/AuthenticatedClientElement'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { getUriWithOrg } from '@services/config/config'
|
import { getUriWithOrg } from '@services/config/config'
|
||||||
import { deleteCourseFromBackend } from '@services/courses/courses'
|
import { deleteCourseFromBackend } from '@services/courses/courses'
|
||||||
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
import { getCourseThumbnailMediaDirectory } from '@services/media/media'
|
||||||
|
|
@ -17,7 +17,7 @@ import {
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
DropdownMenuItem,
|
DropdownMenuItem,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from "@/components/ui/dropdown-menu"
|
} from "@components/Ui/dropdown-menu"
|
||||||
|
|
||||||
type Course = {
|
type Course = {
|
||||||
course_uuid: string
|
course_uuid: string
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import Image from 'next/image'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import blacklogo from '@public/black_logo.png'
|
import blacklogo from '@public/black_logo.png'
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from 'react'
|
||||||
import { useOrg } from './Contexts/OrgContext'
|
import { useOrg } from '../Contexts/OrgContext'
|
||||||
|
|
||||||
function Watermark() {
|
function Watermark() {
|
||||||
const org = useOrg() as any
|
const org = useOrg() as any
|
||||||
|
|
@ -15,7 +15,7 @@ import {
|
||||||
import { mutate } from 'swr'
|
import { mutate } from 'swr'
|
||||||
import { revalidateTags } from '@services/utils/ts/requests'
|
import { revalidateTags } from '@services/utils/ts/requests'
|
||||||
import { useRouter } from 'next/navigation'
|
import { useRouter } from 'next/navigation'
|
||||||
import ConfirmationModal from '@components/StyledElements/ConfirmationModal/ConfirmationModal'
|
import ConfirmationModal from '@components/Objects/StyledElements/ConfirmationModal/ConfirmationModal'
|
||||||
import { deleteActivity, updateActivity } from '@services/courses/activities'
|
import { deleteActivity, updateActivity } from '@services/courses/activities'
|
||||||
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
import { useLHSession } from '@components/Contexts/LHSessionContext'
|
||||||
|
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue