fix: misc issues

This commit is contained in:
Jannat Patel
2025-11-10 13:19:54 +05:30
parent fff9769791
commit 9447903d5b
7 changed files with 35 additions and 24 deletions

View File

@@ -107,7 +107,7 @@ async function setLanguageExtension() {
if (!languageImport) return if (!languageImport) return
const module = await languageImport() const module = await languageImport()
languageExtension.value = (module as any)[props.language]() languageExtension.value = (module as any)[props.language]?.()
if (props.completions) { if (props.completions) {
const languageData = (module as any)[`${props.language}Language`] const languageData = (module as any)[`${props.language}Language`]

View File

@@ -76,7 +76,14 @@ const isIos = () => {
const isInStandaloneMode = () => const isInStandaloneMode = () =>
'standalone' in window.navigator && window.navigator.standalone 'standalone' in window.navigator && window.navigator.standalone
if (isIos() && !isInStandaloneMode()) iosInstallMessage.value = true if (
isIos() &&
!isInStandaloneMode() &&
localStorage.getItem('learningIosInstallPromptShown') !== 'true'
) {
iosInstallMessage.value = true
localStorage.setItem('learningIosInstallPromptShown', 'true')
}
window.addEventListener('beforeinstallprompt', (e) => { window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault() e.preventDefault()

View File

@@ -14,7 +14,10 @@
</Button> </Button>
</div> </div>
<div v-if="upcoming_evals.data?.length"> <div v-if="upcoming_evals.data?.length">
<div class="grid gap-4" :class="forHome ? 'grid-cols-2' : 'grid-cols-3'"> <div
class="grid gap-4"
:class="forHome ? 'grid-cols-1 md:grid-cols-2' : 'grid-cols-3'"
>
<div v-for="evl in upcoming_evals.data"> <div v-for="evl in upcoming_evals.data">
<div class="border text-ink-gray-7 rounded-md p-3"> <div class="border text-ink-gray-7 rounded-md p-3">
<div class="flex justify-between mb-3"> <div class="flex justify-between mb-3">

View File

@@ -64,7 +64,7 @@
</div> </div>
</div> </div>
<div class="grid grid-cols-2 gap-5 mt-10"> <div class="grid grid-cols-1 md:grid-cols-2 gap-10 md:gap-5 mt-10">
<UpcomingEvaluations :forHome="true" /> <UpcomingEvaluations :forHome="true" />
<div v-if="myLiveClasses.data?.length"> <div v-if="myLiveClasses.data?.length">
<div class="font-semibold text-lg mb-3 text-ink-gray-9"> <div class="font-semibold text-lg mb-3 text-ink-gray-9">

View File

@@ -66,38 +66,38 @@
v-if="column.key === 'full_name'" v-if="column.key === 'full_name'"
class="flex items-center space-x-3" class="flex items-center space-x-3"
> >
<img <Avatar
v-if="row.user_image" size="sm"
:src="row.user_image" :image="row['user_image']"
:alt="row.full_name" :label="row['full_name']"
class="w-8 h-8 rounded-full object-cover"
/> />
<div
v-else <span>{{ item }}</span>
class="w-8 h-8 rounded-full bg-surface-gray-3 flex items-center justify-center"
>
<FeatherIcon name="user" class="w-4 h-4 text-ink-gray-6" />
</div>
<span class="text-sm font-medium">{{ item }}</span>
</div> </div>
<div <div
v-else-if="column.key === 'actions'" v-else-if="column.key === 'actions'"
class="flex justify-center" class="flex justify-center"
> >
<Dropdown :options="getActionOptions(row)"> <Dropdown :options="getActionOptions(row)">
<Button variant="ghost" size="sm"> <Button variant="ghost">
<FeatherIcon name="more-horizontal" class="w-4 h-4" /> <FeatherIcon name="more-horizontal" class="w-4 h-4" />
</Button> </Button>
</Dropdown> </Dropdown>
</div> </div>
<div v-else class="text-sm"> <div
v-else-if="column.key === 'applied_on'"
class="text-sm text-ink-gray-6"
>
{{ item }}
</div>
<div v-else>
{{ item }} {{ item }}
</div> </div>
</ListRowItem> </ListRowItem>
</ListRow> </ListRow>
</ListRows> </ListRows>
</ListView> </ListView>
<EmptyState v-else type="Applications" /> <EmptyState v-else-if="!applications.loading" type="Job Applications" />
</div> </div>
<Dialog <Dialog
@@ -147,6 +147,7 @@
<script setup> <script setup>
import { import {
Avatar,
Button, Button,
Breadcrumbs, Breadcrumbs,
Dialog, Dialog,
@@ -252,6 +253,7 @@ const sendEmail = (close) => {
} }
const downloadResume = (resumeUrl) => { const downloadResume = (resumeUrl) => {
console.log(resumeUrl)
window.open(resumeUrl, '_blank') window.open(resumeUrl, '_blank')
} }
@@ -288,7 +290,7 @@ const applicationColumns = computed(() => {
}, },
{ {
label: __('Applied On'), label: __('Applied On'),
key: 'applied_date', key: 'applied_on',
width: 1, width: 1,
icon: 'calendar', icon: 'calendar',
}, },
@@ -305,7 +307,7 @@ const applicantRows = computed(() => {
return applications.data.map((application) => ({ return applications.data.map((application) => ({
...application, ...application,
full_name: application.full_name, full_name: application.full_name,
applied_date: dayjs(application.creation).format('MMM DD, YYYY'), applied_on: dayjs(application.creation).fromNow(),
})) }))
}) })

View File

@@ -176,7 +176,7 @@ const hasHigherAccess = () => {
} }
const isSessionUser = () => { const isSessionUser = () => {
return user.data?.email === props.profile.data?.email return user.data?.email === props.profile.data?.name
} }
const showSlotsTemplate = ref(0) const showSlotsTemplate = ref(0)

View File

@@ -266,8 +266,7 @@ const checkIfUserIsPermitted = (doc: any = null) => {
!user.data.is_evaluator !user.data.is_evaluator
) { ) {
router.push({ router.push({
name: 'ProgrammingExerciseSubmission', name: 'Courses',
params: { exerciseID: props.exerciseID, submissionID: 'new' },
}) })
return return
} }