fix: linter
Deploy banu-front / deploy (push) Successful in 1m28s

This commit is contained in:
sajjadtalkhabi
2026-05-28 15:52:48 +03:30
parent 3f3c66a02d
commit 9660e3fe8f
41 changed files with 1669 additions and 1087 deletions
@@ -142,9 +142,13 @@ const sessionListFilters = computed(() => ({
courseId: form.value.courseId || undefined,
}))
const sessionPagination = ref({ page: 1, perPage: 10 })
const { data: sessionsResponse } = useAdminSessionsListQuery(sessionListFilters, sessionPagination, {
enabled: () => !!form.value.courseId,
})
const { data: sessionsResponse } = useAdminSessionsListQuery(
sessionListFilters,
sessionPagination,
{
enabled: () => !!form.value.courseId,
}
)
const sessionOptions = computed(() => sessionsResponse.value?.data ?? [])
const searchTerms = useDebounce((q) => {
@@ -142,14 +142,13 @@ import BaseButton from '@/components/BaseButton.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import TextField from '@/components/form/TextField.vue'
import SelectField from '@/components/form/SelectField.vue'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import FileUploader from '@/components/form/FileUploader.vue'
import { objectToFormData } from '@/utils/object-to-formdata'
import { useUploadMediaMutation } from '@/services/query/auth'
import TextareaField from '@/components/form/TextareaField.vue'
import DatePickerField from '@/components/form/DatePickerField.vue'
import { assignmentSchema } from '@/features/admin/assignments/schema'
import { useAdminTermsListQuery } from '@/services/query/admin-terms'
import { assignmentSchema } from '@/features/admin/assignments/schema'
import { useAdminCoursesListQuery } from '@/services/query/admin-courses'
import { useAdminSessionsListQuery } from '@/services/query/admin-sessions'
import {
@@ -41,7 +41,7 @@
<LineInfoBlock title="توضیحات" :desc="assignment.description" />
</div>
<div v-if="attachmentItems.length" class="assignment-details__attachments">
<div v-if="attachmentItems.length > 0" class="assignment-details__attachments">
<LineTitleBlock title="فایل‌های تکلیف" title-en="Attachments" />
<ul class="assignment-details__attachments-list">
<li v-for="file in attachmentItems" :key="file.id">
@@ -77,7 +77,6 @@ import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import { usePagination } from '@/composables/usePagination'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import PaginationBlock from '@/components/blocks/PaginationBlock.vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import { useAdminAssignmentSubmissionsQuery } from '@/services/query/admin-assignments'
@@ -82,7 +82,6 @@ import BaseButton from '@/components/BaseButton.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import CircleButton from '@/components/CircleButton.vue'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import { adminCoursesKeys } from '@/services/query/admin-courses'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import {
@@ -142,9 +142,13 @@ const sessionListFilters = computed(() => ({
courseId: form.value.courseId || undefined,
}))
const sessionPagination = ref({ page: 1, perPage: 10 })
const { data: sessionsResponse } = useAdminSessionsListQuery(sessionListFilters, sessionPagination, {
enabled: () => !!form.value.courseId,
})
const { data: sessionsResponse } = useAdminSessionsListQuery(
sessionListFilters,
sessionPagination,
{
enabled: () => !!form.value.courseId,
}
)
const sessionOptions = computed(() => sessionsResponse.value?.data ?? [])
const searchTerms = useDebounce((q) => {
@@ -259,8 +259,7 @@ const answerStateClass = (answerId, question) => {
display: flex;
flex-wrap: wrap;
align-items: center;
column-gap: 1.25rem;
row-gap: 0.5rem;
gap: 0.5rem 1.25rem;
color: #8e8e8e;
}
@@ -336,8 +335,7 @@ const answerStateClass = (answerId, question) => {
&__answers {
display: flex;
flex-wrap: wrap;
column-gap: 3rem;
row-gap: 1.25rem;
gap: 1.25rem 3rem;
}
&__answer {
@@ -125,7 +125,7 @@ const onSubmit = (close) => {
}
&__divider {
border-block-end: 1px solid #dddddd;
border-block-end: 1px solid #ddd;
margin-block: 0.5rem;
}
@@ -80,7 +80,7 @@ const onSendMessage = (data) => {
}
&__divider {
border-block-end: 1px solid #dddddd;
border-block-end: 1px solid #ddd;
margin-block: 0.5rem;
}
@@ -90,7 +90,6 @@ import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import SelectField from '@/components/form/SelectField.vue'
import { usePagination } from '@/composables/usePagination'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import PaginationBlock from '@/components/blocks/PaginationBlock.vue'
import { useAdminTermsListQuery } from '@/services/query/admin-terms'
import { useAdminCoursesListQuery } from '@/services/query/admin-courses'
@@ -125,9 +125,7 @@ const contentType = computed(() => collectionToContentType(contentMedia.value?.c
const contentTypeLabel = computed(() => COURSE_CONTENT_TYPE[contentType.value] || '—')
const mediaUrl = computed(
() => contentMedia.value?.url || contentMedia.value?.downloadUrl || ''
)
const mediaUrl = computed(() => contentMedia.value?.url || contentMedia.value?.downloadUrl || '')
const mediaFileName = computed(() => contentMedia.value?.fileName || 'فایل پیوست')
</script>
@@ -247,7 +247,6 @@ import {
SEMINARY_LEVEL,
SESSION_CANCELLATION_RESPONSE,
UNIVERSITY_LEVEL,
USER_STATUS,
VERIFICATION_MEDIA_TYPE,
} from '@/enums'
@@ -111,11 +111,11 @@ import TextareaField from '@/components/form/TextareaField.vue'
import { useSaveRegisterDataMutation } from '@/services/query/auth'
import StepActions from '@/features/auth/components/studentRegister/StepActions.vue'
import { educationalInformationSchema } from '@/features/auth/schema/student-register'
import { EDUCATION_STATUS, SEMINARY_LEVEL, STUDENT_REGISTRATION, UNIVERSITY_LEVEL } from '@/enums'
import {
toKeyValueList,
useStudentRegistrationStore,
} from '@/features/auth/store/student-registration'
import { EDUCATION_STATUS, SEMINARY_LEVEL, STUDENT_REGISTRATION, UNIVERSITY_LEVEL } from '@/enums'
const store = useStudentRegistrationStore()
@@ -113,8 +113,8 @@ import SelectField from '@/components/form/SelectField.vue'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import { computed, onBeforeUnmount, onMounted, ref } from 'vue'
import TextareaField from '@/components/form/TextareaField.vue'
import { PROPAGATION_PLATFORM, STUDENT_REGISTRATION } from '@/enums'
import { useSaveRegisterDataMutation } from '@/services/query/auth'
import { PROPAGATION_PLATFORM, STUDENT_REGISTRATION } from '@/enums'
import StepActions from '@/features/auth/components/studentRegister/StepActions.vue'
import { professionalInformationSchema } from '@/features/auth/schema/student-register'
import {
@@ -37,11 +37,12 @@
</template>
<script setup>
import { computed, ref } from 'vue'
import { toast } from 'vue3-toastify'
import useYup from '@/composables/useYup'
import { computed, ref } from 'vue'
import { STUDENT_REGISTRATION } from '@/enums'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import { useSaveRegisterDataMutation } from '@/services/query/auth'
import StepActions from '@/features/auth/components/studentRegister/StepActions.vue'
import { skillAssessmentPart7Schema } from '@/features/auth/schema/student-register'
import MediaRecorder from '@/features/auth/components/studentRegister/MediaRecorder.vue'
@@ -49,7 +50,6 @@ import {
toKeyValueList,
useStudentRegistrationStore,
} from '@/features/auth/store/student-registration'
import { useSaveRegisterDataMutation } from '@/services/query/auth'
const store = useStudentRegistrationStore()
@@ -251,7 +251,7 @@ export const useStudentRegistrationStore = defineStore('studentRegistration', ()
Object.entries(flat).forEach(([key, value]) => {
const section = FIELD_TO_SECTION[key]
if (!section) return
buckets[section] = { ...(buckets[section] || {}), [key]: value }
buckets[section] = { ...buckets[section], [key]: value }
})
Object.entries(buckets).forEach(([section, patch]) => {
const target = sectionRefs[section]
@@ -35,12 +35,12 @@
import { computed } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import { useStudentExamQuery } from '@/services/query/student-exams'
import BoxedIconTitleBlock from '@/components/blocks/BoxedIconTitleBlock.vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import SimpleTitleIconBlock from '@/components/blocks/SimpleTitleIconBlock.vue'
import StudentExamSummary from '@/features/student/exams/components/StudentExamSummary.vue'
import StudentExamAttemptItem from '@/features/student/exams/components/StudentExamAttemptItem.vue'
import { useStudentExamQuery } from '@/services/query/student-exams'
const route = useRoute()
const router = useRouter()
@@ -108,10 +108,10 @@ import BaseButton from '@/components/BaseButton.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import TabsBlock from '@/components/blocks/TabsBlock.vue'
import { objectToFormData } from '@/utils/object-to-formdata'
import { useUploadMediaMutation } from '@/services/query/auth'
import VoiceRecorder from '@/components/form/VoiceRecorder.vue'
import ImageUploader from '@/components/form/ImageUploader.vue'
import VideoPlayerBlock from '@/components/blocks/VideoPlayerBlock.vue'
import { useUploadMediaMutation } from '@/services/query/auth'
import BoxedIconTitleBlock from '@/components/blocks/BoxedIconTitleBlock.vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import {
@@ -5,10 +5,7 @@
</div>
<div class="student-term-summary__info">
<div
class="student-term-summary__status"
:class="`student-term-summary__status--${status}`"
>
<div class="student-term-summary__status" :class="`student-term-summary__status--${status}`">
<span class="student-term-summary__status-label">وضعیت دوره :</span>
<span class="student-term-summary__status-value">{{ statusLabel }}</span>
</div>