Skip to content

Commit

Permalink
Use the Vue 3 plugin and component loading syntax (#994)
Browse files Browse the repository at this point in the history
Also, use the esm-bundler version of vue, which resolved a console warning
  • Loading branch information
sandbergja authored Feb 14, 2024
1 parent 8af7100 commit 785fb30
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
29 changes: 13 additions & 16 deletions app/javascript/entrypoints/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,36 +15,33 @@
// const images = require.context('../images', true)
// const imagePath = (name) => images(name, true)

import Vue from "vue";
import system from "lux-design-system";
import {createApp} from "vue";
import lux from "lux-design-system";
import "lux-design-system/dist/style.css";
import eventDateModal from "../components/eventDateModal.vue";
import eventTitleInputWrapper from "../components/eventTitleInputWrapper.vue";
import hoursCalculator from "../components/hoursCalculator.vue";
import travelEstimateForm from "../components/travelEstimateForm.vue";
import travelRequestButton from "../components/travelRequestButton.vue";
import travelRequestDatePickers from "../components/travelRequestDatePickers.vue";
import Rails from '@rails/ujs';
import '../../assets/stylesheets/application.scss';

Vue.use(system);


// create the LUX app and mount it to wrappers with class="lux"
document.addEventListener("DOMContentLoaded", () => {
const elements = document.getElementsByClassName("lux");
for (let i = 0; i < elements.length; i++) {
new Vue({
el: elements[i],
components: {
'event-date-modal': eventDateModal,
'event-title-input-wrapper': eventTitleInputWrapper,
'hours-calculator': hoursCalculator,
'travel-estimate-form': travelEstimateForm,
'travel-request-button': travelRequestButton,
'travel-request-date-pickers': travelRequestDatePickers,
}
});
const app = createApp({});
app.use(lux);
app.component('event-date-modal', eventDateModal)
.component('event-title-input-wrapper', eventTitleInputWrapper)
.component('hours-calculator', hoursCalculator)
.component('travel-estimate-form', travelEstimateForm)
.component('travel-request-button', travelRequestButton)
.component('travel-request-date-pickers', travelRequestDatePickers)
console.log(app);
app.mount(elements[i]);
}
});

Rails.start();
5 changes: 5 additions & 0 deletions vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,9 @@ export default defineConfig({
RubyPlugin(),
vue()
],
resolve: {
alias: {
'vue': 'vue/dist/vue.esm-bundler',
},
}
})

0 comments on commit 785fb30

Please sign in to comment.