enrecipes/app/components/modal/PromptDialog.vue

67 lines
1.5 KiB
Vue
Raw Normal View History

2020-10-21 17:54:45 +00:00
<template>
<Page>
2020-11-10 18:28:48 +00:00
<StackLayout class="dialogContainer" :class="appTheme">
2020-10-21 17:54:45 +00:00
<Label class="dialogTitle orkm" :text="title" />
2020-11-02 11:36:53 +00:00
<StackLayout class="dialogInput">
<TextField
2020-11-02 11:36:53 +00:00
@loaded="focusField"
2020-11-10 18:28:48 +00:00
:hint="hint ? hint : ''"
v-model="category"
autocapitalizationType="words"
/>
</StackLayout>
2020-11-10 18:28:48 +00:00
<GridLayout rows="auto" columns="*, auto, auto" class="actionsContainer">
<MDButton
:rippleColor="rippleColor"
variant="text"
2020-11-02 11:36:53 +00:00
col="1"
class="action orkm"
text="CANCEL"
@tap="$modal.close(false)"
/>
2020-11-10 18:28:48 +00:00
<MDButton
:rippleColor="rippleColor"
variant="text"
col="2"
2020-10-21 17:54:45 +00:00
class="action orkm"
:text="action"
@tap="$modal.close(category)"
/>
2020-11-02 11:36:53 +00:00
</GridLayout>
2020-10-21 17:54:45 +00:00
</StackLayout>
</Page>
</template>
<script>
2020-11-02 11:36:53 +00:00
import { Application, Utils } from "@nativescript/core"
2020-10-21 17:54:45 +00:00
export default {
2020-11-10 18:28:48 +00:00
props: ["title", "hint", "text", "action"],
2020-10-21 17:54:45 +00:00
data() {
return {
category: null,
}
},
computed: {
2020-11-10 18:28:48 +00:00
appTheme() {
return Application.systemAppearance()
},
2020-11-10 18:28:48 +00:00
rippleColor() {
return this.appTheme == "light"
? "rgba(134,142,150,0.2)"
: "rgba(206,212,218,0.1)"
},
2020-10-22 18:36:50 +00:00
},
2020-11-02 11:36:53 +00:00
methods: {
focusField(args) {
args.object.focus()
setTimeout((e) => Utils.ad.showSoftInput(args.object.android), 1)
},
},
2020-11-10 18:28:48 +00:00
mounted() {
if (this.text) {
this.category = this.text
}
},
2020-10-21 17:54:45 +00:00
}
</script>