Browse Source

fix: parameter input focus(#1005)

Ahmad Kholid 2 years ago
parent
commit
517fe66d29

+ 2 - 1
src/components/newtab/workflow/edit/Parameter/ParameterInputValue.vue

@@ -6,6 +6,7 @@
     class="w-full"
     class="w-full"
     :placeholder="paramData.placeholder"
     :placeholder="paramData.placeholder"
     @change="$emit('update:modelValue', $event)"
     @change="$emit('update:modelValue', $event)"
+    @keyup.enter="$emit('execute')"
   />
   />
 </template>
 </template>
 <script setup>
 <script setup>
@@ -21,7 +22,7 @@ const props = defineProps({
     default: () => ({}),
     default: () => ({}),
   },
   },
 });
 });
-defineEmits(['update:modelValue']);
+defineEmits(['update:modelValue', 'execute']);
 
 
 const mask = computed(() => {
 const mask = computed(() => {
   const options = props.paramData.data;
   const options = props.paramData.data;

+ 14 - 0
src/params/App.vue

@@ -53,9 +53,15 @@
                 :is="paramsList[param.type].valueComp"
                 :is="paramsList[param.type].valueComp"
                 v-if="paramsList[param.type]"
                 v-if="paramsList[param.type]"
                 v-model="param.value"
                 v-model="param.value"
+                :autofocus="paramIdx === 0"
                 :label="param.name + (param.data?.required ? '*' : '')"
                 :label="param.name + (param.data?.required ? '*' : '')"
                 :param-data="param"
                 :param-data="param"
                 class="w-full"
                 class="w-full"
+                @execute="
+                  workflow.type === 'block'
+                    ? continueWorkflow(index, workflow)
+                    : runWorkflow(index, workflow)
+                "
               />
               />
               <ui-input
               <ui-input
                 v-else
                 v-else
@@ -228,6 +234,10 @@ function getParamsValues(params) {
   }, {});
   }, {});
 }
 }
 function runWorkflow(index, { data, params }) {
 function runWorkflow(index, { data, params }) {
+  /* eslint-disable-next-line */
+  const isParamsValid = isValidParams(params);
+  if (!isParamsValid) return;
+
   const variables = getParamsValues(params);
   const variables = getParamsValues(params);
   let payload = {
   let payload = {
     name: 'background--workflow:execute',
     name: 'background--workflow:execute',
@@ -264,6 +274,10 @@ function cancelParamBlock(index, { data }, message) {
     });
     });
 }
 }
 function continueWorkflow(index, { data, params }) {
 function continueWorkflow(index, { data, params }) {
+  /* eslint-disable-next-line */
+  const isParamsValid = isValidParams(params);
+  if (!isParamsValid) return;
+
   const timeout = Date.now() > data.timeout;
   const timeout = Date.now() > data.timeout;
 
 
   browser.storage.local
   browser.storage.local