From 6978dc1b069fb80b61bc5ff10462793ac73726f4 Mon Sep 17 00:00:00 2001 From: solvedDev Date: Sat, 15 Oct 2022 23:05:34 +0200 Subject: [PATCH 01/19] wip --- .../HomeView/CreateProjectBtn.vue | 7 ++- .../Projects/CreateProject/CreateProject.ts | 19 +++--- .../Projects/CreateProject/CreateProject.vue | 42 +++++++++---- .../CreateProject/ProjectTypeViewer.vue | 60 +++++++++++++++++++ .../Projects/CreateProject/ProjectTypes.ts | 14 +++++ src/locales/en.json | 7 ++- 6 files changed, 120 insertions(+), 29 deletions(-) create mode 100644 src/components/Projects/CreateProject/ProjectTypeViewer.vue create mode 100644 src/components/Projects/CreateProject/ProjectTypes.ts diff --git a/src/components/PackExplorer/HomeView/CreateProjectBtn.vue b/src/components/PackExplorer/HomeView/CreateProjectBtn.vue index ba44528d3..25c3e17ec 100644 --- a/src/components/PackExplorer/HomeView/CreateProjectBtn.vue +++ b/src/components/PackExplorer/HomeView/CreateProjectBtn.vue @@ -19,13 +19,13 @@ > mdi-plus - {{ t('packExplorer.noProjectView.createLocalProject') }} + {{ t('windows.createProject.title') }} - {{ t('packExplorer.noProjectView.createLocalProject') }} + {{ t('windows.createProject.title') }} @@ -71,7 +71,8 @@ export default { }, calculateAvailableWidth() { if (this.$refs.button) - this.availableWidth = this.$refs.button.$el.getBoundingClientRect().width + this.availableWidth = + this.$refs.button.$el.getBoundingClientRect().width }, }, } diff --git a/src/components/Projects/CreateProject/CreateProject.ts b/src/components/Projects/CreateProject/CreateProject.ts index c309a90f7..7b7f97717 100644 --- a/src/components/Projects/CreateProject/CreateProject.ts +++ b/src/components/Projects/CreateProject/CreateProject.ts @@ -25,6 +25,7 @@ import { IWindowState, NewBaseWindow } from '../../Windows/NewBaseWindow' import { reactive } from 'vue' export interface ICreateProjectOptions { + projectType: 'bridgeFolder' | 'local' | 'comMojang' author: string | string[] description: string icon: File | null @@ -56,7 +57,6 @@ export interface ICreateProjectState extends IWindowState { availableTargetVersionsLoading: boolean } export class CreateProjectWindow extends NewBaseWindow { - protected isFirstProject = false protected availableTargetVersions: string[] = [] protected stableVersion: string = '' protected packs: Record = < @@ -153,10 +153,9 @@ export class CreateProjectWindow extends NewBaseWindow { ) } - open(isFirstProject = false) { + open() { this.state.createOptions = this.getDefaultOptions() - this.isFirstProject = isFirstProject this.packCreateFiles.forEach( (createFile) => (createFile.isActive = true) ) @@ -168,16 +167,12 @@ export class CreateProjectWindow extends NewBaseWindow { const app = await App.getApp() const removeOldProject = - isUsingFileSystemPolyfill.value && - !app.hasNoProjects && - !this.isFirstProject + isUsingFileSystemPolyfill.value && !app.hasNoProjects // Save previous project name to delete it later - let previousProject: Project | undefined - if (!this.isFirstProject) - previousProject = app.isNoProjectSelected - ? app.projects[0] - : app.project + let previousProject = app.isNoProjectSelected + ? app.projects[0] + : app.project // Ask user whether we should save the current project if (removeOldProject) { @@ -229,6 +224,7 @@ export class CreateProjectWindow extends NewBaseWindow { static getDefaultOptions(): ICreateProjectOptions { return { + projectType: 'local', author: settingsState?.projects?.defaultAuthor ?? '', @@ -271,6 +267,7 @@ export class CreateProjectWindow extends NewBaseWindow { config = await app.project.fileSystem.readJSON('config.json') return { + projectType: 'local', author: config.author ?? '', description: config.description ?? '', icon: null, diff --git a/src/components/Projects/CreateProject/CreateProject.vue b/src/components/Projects/CreateProject/CreateProject.vue index 6b925167d..1fa9b57b9 100644 --- a/src/components/Projects/CreateProject/CreateProject.vue +++ b/src/components/Projects/CreateProject/CreateProject.vue @@ -4,34 +4,48 @@ windowTitle="windows.createProject.title" :isVisible="state.isVisible" :hasMaximizeButton="false" - :hasCloseButton="!window.isFirstProject" + :hasCloseButton="true" :isFullscreen="false" - :isPersistent="state.isCreatingProject || window.isFirstProject" + :isPersistent="state.isCreatingProject" :percentageWidth="80" :percentageHeight="80" @closeWindow="close" > + + + + diff --git a/src/components/Projects/CreateProject/ProjectTypes.ts b/src/components/Projects/CreateProject/ProjectTypes.ts new file mode 100644 index 000000000..1b952772b --- /dev/null +++ b/src/components/Projects/CreateProject/ProjectTypes.ts @@ -0,0 +1,14 @@ +export const projectTypes = [ + { + type: 'local', + icon: 'mdi-lock-open-outline', + }, + { + type: 'bridgeFolder', + icon: 'mdi-folder-open-outline', + }, + { + type: 'comMojang', + icon: 'mdi-minecraft', + }, +] diff --git a/src/locales/en.json b/src/locales/en.json index ca030f608..189b683ab 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -440,7 +440,6 @@ }, "noProjectView": { "noProjectsFound": "It does not look like you have any projects yet!", - "createLocalProject": "Create Local Project", "chooseBridgeFolder": "Choose bridge. Folder", "accessBridgeFolder": "Access bridge. Folder", "projectNoLongerExists": "It looks like this project no longer exists!" @@ -695,9 +694,13 @@ }, "comMojangProject": { "name": "com.mojang Project", - "description": "This project was loaded directly from your com.mojang folder", + "description": "com.mojang projects are stored directly within Minecraft's game files.", "uninstallWarning": "This project will be deleted if you uninstall Minecraft." }, + "bridgeFolderProject": { + "name": "Normal Project", + "description": "Normal projects are stored within your bridge. folder." + }, "newProject": { "name": "New Project", "description": "Create a new bridge. project." From 762af5a8af27918258914cd93f94eeebf25d5630 Mon Sep 17 00:00:00 2001 From: solvedDev Date: Sat, 22 Oct 2022 14:43:08 +0200 Subject: [PATCH 02/19] feat(CreateProject): switch to tabbed window --- .../CreateProject/CreateCategories.ts | 33 ++ .../Projects/CreateProject/CreateProject.ts | 19 ++ .../Projects/CreateProject/CreateProject.vue | 309 +----------------- .../CreateProject/{ => Tabs}/CreateFile.vue | 6 +- .../{ => Tabs}/ExperimentalGameplay.vue | 6 +- .../Tabs/ExperimentalGameplayTab.vue | 30 ++ .../Projects/CreateProject/Tabs/FilesTab.vue | 28 ++ .../CreateProject/Tabs/GeneralTab.vue | 120 +++++++ .../CreateProject/Tabs/ProjectTypeTab.vue | 124 +++++++ .../{ => Tabs}/ProjectTypeViewer.vue | 0 .../ProjectChooser/ProjectChooser.vue | 2 +- src/locales/en.json | 12 +- 12 files changed, 385 insertions(+), 304 deletions(-) create mode 100644 src/components/Projects/CreateProject/CreateCategories.ts rename src/components/Projects/CreateProject/{ => Tabs}/CreateFile.vue (95%) rename src/components/Projects/CreateProject/{ => Tabs}/ExperimentalGameplay.vue (94%) create mode 100644 src/components/Projects/CreateProject/Tabs/ExperimentalGameplayTab.vue create mode 100644 src/components/Projects/CreateProject/Tabs/FilesTab.vue create mode 100644 src/components/Projects/CreateProject/Tabs/GeneralTab.vue create mode 100644 src/components/Projects/CreateProject/Tabs/ProjectTypeTab.vue rename src/components/Projects/CreateProject/{ => Tabs}/ProjectTypeViewer.vue (100%) diff --git a/src/components/Projects/CreateProject/CreateCategories.ts b/src/components/Projects/CreateProject/CreateCategories.ts new file mode 100644 index 000000000..5805a0aa0 --- /dev/null +++ b/src/components/Projects/CreateProject/CreateCategories.ts @@ -0,0 +1,33 @@ +import GeneralTab from './Tabs/GeneralTab.vue' +import FilesTab from './Tabs/FilesTab.vue' +import ExperimentalGameplayTab from './Tabs/ExperimentalGameplayTab.vue' +import ProjectTypeTab from './Tabs/ProjectTypeTab.vue' + +interface ICreateCategory { + icon: string + id: string + component: any +} + +export const createCategories: ICreateCategory[] = [ + { + icon: 'mdi-circle-outline', + id: 'general', + component: GeneralTab, + }, + { + icon: 'mdi-package-variant-closed', + id: 'projectType', + component: ProjectTypeTab, + }, + { + icon: 'mdi-test-tube', + id: 'experimentalGameplay', + component: ExperimentalGameplayTab, + }, + { + icon: 'mdi-file-outline', + id: 'files', + component: FilesTab, + }, +] diff --git a/src/components/Projects/CreateProject/CreateProject.ts b/src/components/Projects/CreateProject/CreateProject.ts index 7b7f97717..2595e5cdb 100644 --- a/src/components/Projects/CreateProject/CreateProject.ts +++ b/src/components/Projects/CreateProject/CreateProject.ts @@ -23,6 +23,9 @@ import { Project } from '../Project/Project' import { CreateDenoConfig } from './Files/DenoConfig' import { IWindowState, NewBaseWindow } from '../../Windows/NewBaseWindow' import { reactive } from 'vue' +import { Sidebar, SidebarItem } from '../../Windows/Layout/Sidebar' +import { translate } from '../../Locales/Manager' +import { createCategories } from './CreateCategories' export interface ICreateProjectOptions { projectType: 'bridgeFolder' | 'local' | 'comMojang' @@ -56,7 +59,9 @@ export interface ICreateProjectState extends IWindowState { createOptions: ICreateProjectOptions availableTargetVersionsLoading: boolean } + export class CreateProjectWindow extends NewBaseWindow { + protected sidebar = new Sidebar([], false) protected availableTargetVersions: string[] = [] protected stableVersion: string = '' protected packs: Record = < @@ -139,6 +144,19 @@ export class CreateProjectWindow extends NewBaseWindow { App.packType.ready.once(() => { this.availablePackTypes = App.packType.all }) + + createCategories.forEach((category) => { + this.sidebar.addElement( + new SidebarItem({ + icon: category.icon, + id: category.id, + color: 'accent', + text: translate( + 'windows.createProject.categories.' + category.id + ), + }) + ) + }) } get hasRequiredData() { @@ -155,6 +173,7 @@ export class CreateProjectWindow extends NewBaseWindow { open() { this.state.createOptions = this.getDefaultOptions() + this.sidebar.setDefaultSelected() this.packCreateFiles.forEach( (createFile) => (createFile.isActive = true) diff --git a/src/components/Projects/CreateProject/CreateProject.vue b/src/components/Projects/CreateProject/CreateProject.vue index 1fa9b57b9..64559f8db 100644 --- a/src/components/Projects/CreateProject/CreateProject.vue +++ b/src/components/Projects/CreateProject/CreateProject.vue @@ -1,5 +1,5 @@ diff --git a/src/components/Projects/CreateProject/CreateFile.vue b/src/components/Projects/CreateProject/Tabs/CreateFile.vue similarity index 95% rename from src/components/Projects/CreateProject/CreateFile.vue rename to src/components/Projects/CreateProject/Tabs/CreateFile.vue index 427237458..cd8fc8037 100644 --- a/src/components/Projects/CreateProject/CreateFile.vue +++ b/src/components/Projects/CreateProject/Tabs/CreateFile.vue @@ -2,7 +2,7 @@ @@ -69,6 +70,9 @@ function close() { function getCurrentComponent(id: string) { return state.steps.find((step: IStep) => step.id === id)?.component } +function getCurrentState(id: string) { + return state.steps.find((step: IStep) => step.id === id)?.state +} diff --git a/src/components/Projects/CreateProject/Tabs/CreateFile/Tab.vue b/src/components/Projects/CreateProject/Tabs/CreateFile/Tab.vue index a7623480e..e98edae70 100644 --- a/src/components/Projects/CreateProject/Tabs/CreateFile/Tab.vue +++ b/src/components/Projects/CreateProject/Tabs/CreateFile/Tab.vue @@ -1,7 +1,5 @@ @@ -42,7 +44,7 @@ export default { props: { isSelected: Boolean, isDisabled: Boolean, - disabledText: String, + status: Object, text: String, icon: String, color: String, diff --git a/src/components/Windows/Layout/SidebarWindow.vue b/src/components/Windows/Layout/SidebarWindow.vue index b0537d43a..7363379b9 100644 --- a/src/components/Windows/Layout/SidebarWindow.vue +++ b/src/components/Windows/Layout/SidebarWindow.vue @@ -21,7 +21,7 @@ :text="element.text" :isSelected="selected === element.id" :isDisabled="element.isDisabled" - :disabledText="element.disabledText" + :status="element.status" :compact="isMobile" @click="onSidebarChanged(element.id)" /> diff --git a/src/components/Windows/Project/CreatePreset/PresetWindow.ts b/src/components/Windows/Project/CreatePreset/PresetWindow.ts index 9583a8aaf..9852ee55a 100644 --- a/src/components/Windows/Project/CreatePreset/PresetWindow.ts +++ b/src/components/Windows/Project/CreatePreset/PresetWindow.ts @@ -215,7 +215,10 @@ export class CreatePresetWindow extends NewBaseWindow { icon: manifest.icon, color: iconColor, isDisabled: !mayUsePreset, - disabledText: failureMessage, + status: { + showStatus: !mayUsePreset, + message: failureMessage, + }, resetState, }) ) From d93753626772b48cb50f3a843879be6f657d33fd Mon Sep 17 00:00:00 2001 From: Joelant05 <64587014+Joelant05@users.noreply.github.com> Date: Wed, 28 Dec 2022 13:01:11 +0000 Subject: [PATCH 15/19] fix: give tabs access to their own state --- src/components/Windows/StepperWindow/StepperWindow.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Windows/StepperWindow/StepperWindow.vue b/src/components/Windows/StepperWindow/StepperWindow.vue index 639b510a2..c63c133b8 100644 --- a/src/components/Windows/StepperWindow/StepperWindow.vue +++ b/src/components/Windows/StepperWindow/StepperWindow.vue @@ -31,7 +31,7 @@ From 243ee357e9941ca0891ee7f0181529f3954d4c7c Mon Sep 17 00:00:00 2001 From: Joelant05 <64587014+Joelant05@users.noreply.github.com> Date: Sat, 21 Jan 2023 21:17:02 +0000 Subject: [PATCH 16/19] upd: implement status indicator API into stepper window --- .../Projects/CreateProject/CreateProject.ts | 35 +++++++++++++------ .../CreateProject/Tabs/GeneralTab.vue | 11 ++++++ .../CreateProject/Tabs/PackTypeTab.vue | 8 +++++ .../CreateProject/Tabs/ProjectType/Tab.vue | 8 ----- .../Windows/StepperWindow/StepperWindow.ts | 5 +++ 5 files changed, 49 insertions(+), 18 deletions(-) diff --git a/src/components/Projects/CreateProject/CreateProject.ts b/src/components/Projects/CreateProject/CreateProject.ts index 2d211058f..a62505f17 100644 --- a/src/components/Projects/CreateProject/CreateProject.ts +++ b/src/components/Projects/CreateProject/CreateProject.ts @@ -147,15 +147,26 @@ export class CreateProjectWindow extends StepperWindow { } get hasRequiredData() { - return ( - this.createOptions.packs.length > 1 && - this.projectNameRules.every( - (rule) => rule(this.createOptions.name) === true - ) && - this.createOptions.namespace.length > 0 && - this.createOptions.author.length > 0 && - this.createOptions.targetVersion.length > 0 - ) + return createCategories.every(({ id }) => this.tabHasRequiredData(id)) + } + + tabHasRequiredData(tabId: string) { + switch (tabId) { + case 'general': + return ( + this.projectNameRules.every( + (rule) => rule(this.createOptions.name) === true + ) && + this.createOptions.namespace.length > 0 && + this.createOptions.author.length > 0 && + this.createOptions.targetVersion.length > 0 + ) + case 'packType': + return this.createOptions.packs.length > 1 + + default: + return true + } } /** @@ -184,7 +195,11 @@ export class CreateProjectWindow extends StepperWindow { if (!this.state.confirm) return this.state.confirm.isLoading = true - await this.createProject() + // TODO remove test code + // await this.createProject() + await new Promise((resolve) => { + setTimeout(() => resolve(), 1000) + }) this.state.confirm.isLoading = false this.close() diff --git a/src/components/Projects/CreateProject/Tabs/GeneralTab.vue b/src/components/Projects/CreateProject/Tabs/GeneralTab.vue index 031ba3695..45a1805ce 100644 --- a/src/components/Projects/CreateProject/Tabs/GeneralTab.vue +++ b/src/components/Projects/CreateProject/Tabs/GeneralTab.vue @@ -26,6 +26,7 @@ class="ml-2" outlined dense + @input="updateStatus" /> @@ -48,6 +49,7 @@ class="mr-2" outlined dense + @input="updateStatus" /> @@ -101,6 +105,7 @@ import { computed } from 'vue' const { t } = useTranslations() const props = defineProps(['window']) const state = props.window.state +const sidebarStatus = props.window.sidebar.currentElement.status const nameRules = computed(() => { return props.window.projectNameRules.map((rule: any) => (val: any) => { @@ -117,4 +122,10 @@ function onDropFile(event: DragEvent) { state.createOptions.icon = file } + +function updateStatus() { + sidebarStatus.showStatus = !props.window.tabHasRequiredData('general') +} + +updateStatus() diff --git a/src/components/Projects/CreateProject/Tabs/PackTypeTab.vue b/src/components/Projects/CreateProject/Tabs/PackTypeTab.vue index 75e9cc122..20fe5e352 100644 --- a/src/components/Projects/CreateProject/Tabs/PackTypeTab.vue +++ b/src/components/Projects/CreateProject/Tabs/PackTypeTab.vue @@ -87,6 +87,7 @@ import { useTranslations } from '/@/components/Composables/useTranslations' const { t } = useTranslations() const props = defineProps(['window']) const state = props.window.state +const sidebarStatus = props.window.sidebar.currentElement.status function togglePack(packPath: string) { const packs = state.createOptions.packs @@ -94,5 +95,12 @@ function togglePack(packPath: string) { if (index > -1) packs.splice(index, 1) else packs.push(packPath) + + updateStatus() +} + +function updateStatus() { + sidebarStatus.showStatus = !props.window.tabHasRequiredData('packType') } +updateStatus() diff --git a/src/components/Projects/CreateProject/Tabs/ProjectType/Tab.vue b/src/components/Projects/CreateProject/Tabs/ProjectType/Tab.vue index 58adb6181..09e422252 100644 --- a/src/components/Projects/CreateProject/Tabs/ProjectType/Tab.vue +++ b/src/components/Projects/CreateProject/Tabs/ProjectType/Tab.vue @@ -30,12 +30,4 @@ import { projectTypes } from '../../ProjectTypes' const props = defineProps(['window']) const state = props.window.state - -function togglePack(packPath: string) { - const packs = state.createOptions.packs - const index = packs.indexOf(packPath) - - if (index > -1) packs.splice(index, 1) - else packs.push(packPath) -} diff --git a/src/components/Windows/StepperWindow/StepperWindow.ts b/src/components/Windows/StepperWindow/StepperWindow.ts index 1f4395d6a..26b503e3a 100644 --- a/src/components/Windows/StepperWindow/StepperWindow.ts +++ b/src/components/Windows/StepperWindow/StepperWindow.ts @@ -58,6 +58,11 @@ export class StepperWindow extends NewBaseWindow { id: step.id, color: step.color ?? 'accent', text: step.name, + status: reactive({ + showStatus: false, + // TODO - translate + message: 'This step has incomplete data!', + }), }) ) } From 56c1c1fc9c96d81e483be13101f69c3637101311 Mon Sep 17 00:00:00 2001 From: Joelant05 <64587014+Joelant05@users.noreply.github.com> Date: Sun, 22 Jan 2023 14:34:31 +0000 Subject: [PATCH 17/19] upd: remove console.log --- src/components/Windows/Layout/Sidebar.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/Windows/Layout/Sidebar.ts b/src/components/Windows/Layout/Sidebar.ts index aed80ea2d..9328a1ad0 100644 --- a/src/components/Windows/Layout/Sidebar.ts +++ b/src/components/Windows/Layout/Sidebar.ts @@ -179,7 +179,6 @@ export class Sidebar extends EventDispatcher { ) { super() this.selected = this.findDefaultSelected() - console.log(this._elements) } get showDisabled() { From 02acd5dd0fffdb08e5b6e97596ebdd877d142f0e Mon Sep 17 00:00:00 2001 From: Joelant05 <64587014+Joelant05@users.noreply.github.com> Date: Sun, 22 Jan 2023 14:37:08 +0000 Subject: [PATCH 18/19] fix: maintain reactivity of confirm button state --- .../Projects/CreateProject/CreateProject.ts | 13 ++++++--- .../Windows/StepperWindow/StepperWindow.ts | 28 +++++++++++++++++-- .../Windows/StepperWindow/StepperWindow.vue | 4 +-- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/components/Projects/CreateProject/CreateProject.ts b/src/components/Projects/CreateProject/CreateProject.ts index a62505f17..bb0fcb968 100644 --- a/src/components/Projects/CreateProject/CreateProject.ts +++ b/src/components/Projects/CreateProject/CreateProject.ts @@ -19,7 +19,7 @@ import { getStableFormatVersion, } from '/@/components/Data/FormatVersions' import { CreateDenoConfig } from './Files/DenoConfig' -import { reactive, computed } from 'vue' +import { reactive, watch } from 'vue' import { translate } from '../../Locales/Manager' import { createCategories } from './CreateCategories' import { @@ -185,11 +185,11 @@ export class CreateProjectWindow extends StepperWindow { }) }) - this.state.confirm = { + this.updateConfirmState({ name: translate('windows.createProject.create'), color: 'primary', icon: 'mdi-plus', - isDisabled: computed(() => !this.hasRequiredData), + isDisabled: true, isLoading: false, onConfirm: async () => { if (!this.state.confirm) return @@ -204,7 +204,12 @@ export class CreateProjectWindow extends StepperWindow { this.close() }, - } + }) + + watch( + () => this.hasRequiredData, + () => (this.state.confirm.isDisabled = !this.hasRequiredData) + ) } open() { diff --git a/src/components/Windows/StepperWindow/StepperWindow.ts b/src/components/Windows/StepperWindow/StepperWindow.ts index 26b503e3a..2cae2f684 100644 --- a/src/components/Windows/StepperWindow/StepperWindow.ts +++ b/src/components/Windows/StepperWindow/StepperWindow.ts @@ -1,4 +1,5 @@ import { ComputedRef, reactive } from 'vue' +import { translate as t } from '../../Locales/Manager' import { Sidebar, SidebarItem } from '../Layout/Sidebar' import { IWindowState, NewBaseWindow } from '../NewBaseWindow' import { IStep } from './Step' @@ -6,9 +7,9 @@ import StepperWindowComponent from './StepperWindow.vue' interface IStepperConfirmConfig { name: string - color?: string + color: string icon?: string - isDisabled: ComputedRef + isDisabled: boolean isLoading: boolean onConfirm: () => void } @@ -16,7 +17,7 @@ interface IStepperConfirmConfig { export interface IStepperWindowState extends IWindowState { steps: IStep[] windowTitle: string - confirm?: IStepperConfirmConfig + confirm: IStepperConfirmConfig } export interface IStepperWindowOptions { windowTitle?: string @@ -31,6 +32,15 @@ export class StepperWindow extends NewBaseWindow { steps: [], actions: [], windowTitle: '[Unknown]', + + // Default confirm config + confirm: { + name: t('general.confirm'), + color: 'primary', + isDisabled: false, + isLoading: false, + onConfirm: () => {}, + }, }) protected sidebar = new Sidebar([], false) @@ -66,4 +76,16 @@ export class StepperWindow extends NewBaseWindow { }) ) } + + /** + * Updates the confirm button config on the stepper window while maintaing reactivity + */ + updateConfirmState(config: Partial) { + if (config.name) this.state.confirm.name = config.name + if (config.color) this.state.confirm.color = config.color + if (config.icon) this.state.confirm.icon = config.icon + if (config.isDisabled) this.state.confirm.isDisabled = config.isDisabled + if (config.isLoading) this.state.confirm.isLoading = config.isLoading + if (config.onConfirm) this.state.confirm.onConfirm = config.onConfirm + } } diff --git a/src/components/Windows/StepperWindow/StepperWindow.vue b/src/components/Windows/StepperWindow/StepperWindow.vue index c63c133b8..6b4c220d7 100644 --- a/src/components/Windows/StepperWindow/StepperWindow.vue +++ b/src/components/Windows/StepperWindow/StepperWindow.vue @@ -46,8 +46,8 @@ From 90c7bf631e36f35795377dc281f162fa3378f7a8 Mon Sep 17 00:00:00 2001 From: Joelant05 <64587014+Joelant05@users.noreply.github.com> Date: Sat, 4 Feb 2023 14:07:51 +0000 Subject: [PATCH 19/19] upd: remove unnecessary early return --- src/components/Projects/CreateProject/CreateProject.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/Projects/CreateProject/CreateProject.ts b/src/components/Projects/CreateProject/CreateProject.ts index bb0fcb968..023f81acc 100644 --- a/src/components/Projects/CreateProject/CreateProject.ts +++ b/src/components/Projects/CreateProject/CreateProject.ts @@ -192,8 +192,6 @@ export class CreateProjectWindow extends StepperWindow { isDisabled: true, isLoading: false, onConfirm: async () => { - if (!this.state.confirm) return - this.state.confirm.isLoading = true // TODO remove test code // await this.createProject()