aboutsummaryrefslogtreecommitdiff
path: root/resources/vue/courseware-admin-app.js
blob: 2ca74549a14517467f13584954beaa54370ed5c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import AdminApp from './components/courseware/AdminApp.vue';
import { mapResourceModules } from '@elan-ev/reststate-vuex';
import Vuex from 'vuex';
import CoursewareAdminModule from './store/courseware/courseware-admin.module';
import axios from 'axios';

const mountApp = (STUDIP, createApp, element) => {
    const getHttpClient = () =>
    axios.create({
        baseURL: STUDIP.URLHelper.getURL(`jsonapi.php/v1`, {}, true),
        headers: {
            'Content-Type': 'application/vnd.api+json',
        },
    });

    const httpClient = getHttpClient();

    const store = new Vuex.Store({
        modules: {
            courseware: CoursewareAdminModule,
            ...mapResourceModules({
                names: [
                    'courseware-templates',
                ],
                httpClient,
            }),
        },
    });

    store.dispatch('courseware-templates/loadAll');

    const app = createApp({
        render: (h) => h(AdminApp),
        store
    });

    app.$mount(element);

    return app;
}

export default mountApp;