feat(batch): track active tab in URL/route (#1337)
* chore: remove defineModel imports * it is a compiler macro now, so no longer needs to be imported * feat(batch): track active tab in URL/route Fixes #1336 * style: lint
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
"@editorjs/paragraph": "^2.11.3",
|
"@editorjs/paragraph": "^2.11.3",
|
||||||
"@editorjs/simple-image": "^1.6.0",
|
"@editorjs/simple-image": "^1.6.0",
|
||||||
"@editorjs/table": "^2.4.2",
|
"@editorjs/table": "^2.4.2",
|
||||||
|
"@vueuse/router": "^12.7.0",
|
||||||
"ace-builds": "^1.36.2",
|
"ace-builds": "^1.36.2",
|
||||||
"apexcharts": "^4.3.0",
|
"apexcharts": "^4.3.0",
|
||||||
"chart.js": "^4.4.1",
|
"chart.js": "^4.4.1",
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, createResource } from 'frappe-ui'
|
import { Dialog, createResource } from 'frappe-ui'
|
||||||
import { ref, defineModel } from 'vue'
|
import { ref } from 'vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import { showToast } from '@/utils'
|
import { showToast } from '@/utils'
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ import {
|
|||||||
FormControl,
|
FormControl,
|
||||||
Switch,
|
Switch,
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { defineModel, reactive, watch } from 'vue'
|
import { reactive, watch } from 'vue'
|
||||||
import { showToast, getFileSize } from '@/utils/'
|
import { showToast, getFileSize } from '@/utils/'
|
||||||
import { capture } from '@/telemetry'
|
import { capture } from '@/telemetry'
|
||||||
import { FileText, X } from 'lucide-vue-next'
|
import { FileText, X } from 'lucide-vue-next'
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, FormControl, TextEditor, createResource } from 'frappe-ui'
|
import { Dialog, FormControl, TextEditor, createResource } from 'frappe-ui'
|
||||||
import { reactive, defineModel } from 'vue'
|
import { reactive } from 'vue'
|
||||||
import { showToast, singularize } from '@/utils'
|
import { showToast, singularize } from '@/utils'
|
||||||
|
|
||||||
const topics = defineModel('reloadTopics')
|
const topics = defineModel('reloadTopics')
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ import {
|
|||||||
createResource,
|
createResource,
|
||||||
TextEditor,
|
TextEditor,
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { reactive, watch, defineModel } from 'vue'
|
import { reactive, watch } from 'vue'
|
||||||
import { FileText, X } from 'lucide-vue-next'
|
import { FileText, X } from 'lucide-vue-next'
|
||||||
import { getFileSize, showToast, escapeHTML } from '@/utils'
|
import { getFileSize, showToast, escapeHTML } from '@/utils'
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, createResource, Select, FormControl } from 'frappe-ui'
|
import { Dialog, createResource, Select, FormControl } from 'frappe-ui'
|
||||||
import { defineModel, reactive, watch, inject } from 'vue'
|
import { reactive, watch, inject } from 'vue'
|
||||||
import { createToast, formatTime } from '@/utils/'
|
import { createToast, formatTime } from '@/utils/'
|
||||||
|
|
||||||
const user = inject('$user')
|
const user = inject('$user')
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, FileUploader, Button, createResource } from 'frappe-ui'
|
import { Dialog, FileUploader, Button, createResource } from 'frappe-ui'
|
||||||
import { FileText } from 'lucide-vue-next'
|
import { FileText } from 'lucide-vue-next'
|
||||||
import { ref, inject, defineModel } from 'vue'
|
import { ref, inject } from 'vue'
|
||||||
import { createToast, getFileSize } from '@/utils/'
|
import { createToast, getFileSize } from '@/utils/'
|
||||||
|
|
||||||
const resume = ref(null)
|
const resume = ref(null)
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Dialog, Textarea, createResource } from 'frappe-ui'
|
import { Dialog, Textarea, createResource } from 'frappe-ui'
|
||||||
import { defineModel, reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
import Rating from '@/components/Controls/Rating.vue'
|
import Rating from '@/components/Controls/Rating.vue'
|
||||||
import { createToast } from '@/utils/'
|
import { createToast } from '@/utils/'
|
||||||
|
|
||||||
|
|||||||
@@ -193,8 +193,9 @@
|
|||||||
<BulkCertificates v-model="openCertificateDialog" :batch="batch.data" />
|
<BulkCertificates v-model="openCertificateDialog" :batch="batch.data" />
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { Breadcrumbs, Button, createResource, Tabs, Badge } from 'frappe-ui'
|
|
||||||
import { computed, inject, ref } from 'vue'
|
import { computed, inject, ref } from 'vue'
|
||||||
|
import { useRouteQuery } from '@vueuse/router'
|
||||||
|
import { Breadcrumbs, Button, createResource, Tabs, Badge } from 'frappe-ui'
|
||||||
import CourseInstructors from '@/components/CourseInstructors.vue'
|
import CourseInstructors from '@/components/CourseInstructors.vue'
|
||||||
import UserAvatar from '@/components/UserAvatar.vue'
|
import UserAvatar from '@/components/UserAvatar.vue'
|
||||||
import {
|
import {
|
||||||
@@ -270,7 +271,7 @@ const isStudent = computed(() => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
const tabIndex = ref(0)
|
const tabIndex = useRouteQuery('tab', 0)
|
||||||
const tabs = computed(() => {
|
const tabs = computed(() => {
|
||||||
let batchTabs = []
|
let batchTabs = []
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
|
|||||||
Reference in New Issue
Block a user