@@ -238,11 +239,13 @@ import GameDirectoryResolverProvider from '../providers/ror2/game/GameDirectoryR
import { ProfileImportExport } from '../r2mm/mods/ProfileImportExport';
import DeleteProfileModal from "../components/profiles-modals/DeleteProfileModal.vue";
import RenameProfileModal from "../components/profiles-modals/RenameProfileModal.vue";
+import CreateProfileModal from "../components/profiles-modals/CreateProfileModal.vue";
let fs: FsProvider;
@Component({
components: {
+ CreateProfileModal,
hero: Hero,
'progress-bar': Progress,
DeleteProfileModal,
@@ -354,6 +357,10 @@ export default class Profiles extends Vue {
this.addingProfile = false;
}
+ openCreateProfileModal() {
+ this.$store.commit('openCreateProfileModal');
+ }
+
openDeleteProfileModal() {
this.$store.commit('openDeleteProfileModal');
}
diff --git a/src/store/modules/ModalsModule.ts b/src/store/modules/ModalsModule.ts
index c419ab5a5..38f757943 100644
--- a/src/store/modules/ModalsModule.ts
+++ b/src/store/modules/ModalsModule.ts
@@ -7,6 +7,7 @@ interface State {
downloadModModalMod: ThunderstoreMod | null;
isAssociatedModsModOpen: boolean;
isCategoryFilterModalOpen: boolean;
+ isCreateProfileModalOpen: boolean;
isDeleteProfileModalOpen: boolean;
isDisableModModalOpen: boolean;
isDownloadModModalOpen: boolean;
@@ -23,6 +24,7 @@ export default {
downloadModModalMod: null,
isAssociatedModsModOpen: false,
isCategoryFilterModalOpen: false,
+ isCreateProfileModalOpen: false,
isDeleteProfileModalOpen: false,
isDisableModModalOpen: false,
isDownloadModModalOpen: false,
@@ -42,6 +44,10 @@ export default {
state.isCategoryFilterModalOpen = false;
},
+ closeCreateProfileModal: function(state: State): void {
+ state.isCreateProfileModalOpen = false;
+ },
+
closeDeleteProfileModal: function(state: State): void {
state.isDeleteProfileModalOpen = false;
},
@@ -78,6 +84,10 @@ export default {
state.isCategoryFilterModalOpen = true;
},
+ openCreateProfileModal: function(state: State): void {
+ state.isCreateProfileModalOpen = true;
+ },
+
openDeleteProfileModal: function(state: State): void {
state.isDeleteProfileModalOpen = true;
},
diff --git a/src/store/modules/ProfilesModule.ts b/src/store/modules/ProfilesModule.ts
index 000bf025a..89b381c01 100644
--- a/src/store/modules/ProfilesModule.ts
+++ b/src/store/modules/ProfilesModule.ts
@@ -25,6 +25,15 @@ export const ProfilesModule = {
},
},
actions:
>{
+ async addProfile({rootGetters, state, dispatch}, name: string) {
+ try {
+ await dispatch('setSelectedProfile', { profileName: name, prewarmCache: true });
+ await dispatch('updateProfileList');
+ } catch (e) {
+ throw R2Error.fromThrownValue(e, 'Error whilst creating a profile');
+ }
+ },
+
async removeSelectedProfile({rootGetters, state, dispatch}) {
const activeProfile: Profile = rootGetters['profile/activeProfile'];
const path = activeProfile.getPathOfProfile();