enrecipes/app/components/modal/PromptDialog.vue

84 lines
2.1 KiB
Vue
Raw Normal View History

2020-10-21 17:54:45 +00:00
<template>
2021-03-10 15:59:50 +00:00
<Page @loaded="onPageLoad" backgroundColor="transparent">
2021-02-28 15:10:26 +00:00
<StackLayout class="dialogContainer" :class="appTheme">
2021-03-21 17:02:04 +00:00
<StackLayout class="dialogHeader" orientation="horizontal">
<Label class="er dialogIcon" :text="icon[helpIcon]" />
<Label
2021-03-23 06:16:25 +00:00
class="dialogTitle "
2021-03-21 17:02:04 +00:00
:text="`${title}` | L"
textWrap="true"
/>
</StackLayout>
2021-02-28 15:10:26 +00:00
<StackLayout class="dialogInput">
<TextField
@loaded="focusField"
:hint="hint ? hint : ''"
v-model="category"
autocapitalizationType="words"
@returnPress="$modal.close(category)"
/>
</StackLayout>
<GridLayout rows="auto" columns="*, auto, auto" class="actionsContainer">
<MDButton
variant="text"
col="1"
2021-03-23 06:16:25 +00:00
class="action tb"
2021-02-28 15:10:26 +00:00
:text="'cBtn' | L"
@tap="$modal.close(false)"
/>
<MDButton
variant="text"
col="2"
2021-03-23 06:16:25 +00:00
class="action tb"
2021-02-28 15:10:26 +00:00
:text="`${action}` | L"
@tap="$modal.close(category)"
/>
</GridLayout>
2020-10-21 17:54:45 +00:00
</StackLayout>
2021-02-28 15:10:26 +00:00
</Page>
2020-10-21 17:54:45 +00:00
</template>
<script>
2021-02-28 15:10:26 +00:00
import { Application, Utils } from "@nativescript/core";
import { localize } from "@nativescript/localize";
import { mapState } from "vuex";
2020-10-21 17:54:45 +00:00
export default {
2021-02-28 15:10:26 +00:00
props: ["title", "hint", "text", "action", "helpIcon"],
2020-10-21 17:54:45 +00:00
data() {
return {
category: null,
2021-02-28 15:10:26 +00:00
};
2020-10-21 17:54:45 +00:00
},
computed: {
2021-02-28 15:10:26 +00:00
...mapState(["icon"]),
2020-11-10 18:28:48 +00:00
appTheme() {
2021-02-28 15:10:26 +00:00
return Application.systemAppearance();
},
2021-01-13 05:02:48 +00:00
isLightMode() {
2021-02-28 15:10:26 +00:00
return this.appTheme == "light";
2021-01-13 05:02:48 +00:00
},
2020-10-22 18:36:50 +00:00
},
2020-11-02 11:36:53 +00:00
methods: {
2021-03-10 15:59:50 +00:00
onPageLoad(args) {
args.object._dialogFragment
.getDialog()
.getWindow()
.setBackgroundDrawable(
new android.graphics.drawable.ColorDrawable(
android.graphics.Color.TRANSPARENT
)
);
},
2021-02-28 15:10:26 +00:00
focusField(args) {
args.object.focus();
setTimeout((e) => Utils.ad.showSoftInput(args.object.android), 1);
2020-11-02 11:36:53 +00:00
},
},
2020-11-10 18:28:48 +00:00
mounted() {
2021-02-28 15:10:26 +00:00
if (this.text) {
this.category = localize(this.text);
2020-11-10 18:28:48 +00:00
}
},
2021-02-28 15:10:26 +00:00
};
2020-10-21 17:54:45 +00:00
</script>