Skip to content

Commit 0bcb32b

Browse files
authored
Update DynamicPropertyField to handle editableOnCreate and editableOnUpdate (#35)
Fixes #34
1 parent 1f68b90 commit 0bcb32b

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

Diff for: lib/components/DynamicPropertyField.vue

+13-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
<span class="pl-1 text-red-500">*</span>
1212
</template>
1313
</label>
14-
<template v-if="!field.editable">
14+
<template
15+
v-if="
16+
(props.mode === 'create' && !field.editableOnCreate) ||
17+
(props.mode === 'update' && !field.editableOnUpdate)
18+
"
19+
>
1520
<input
1621
disabled
1722
:type="field.sensitive ? 'password' : 'text'"
@@ -188,6 +193,13 @@ const props = defineProps({
188193
type: [Object],
189194
required: true,
190195
},
196+
mode: {
197+
type: String,
198+
required: true,
199+
validator(value: string) {
200+
return ["create", "update"].includes(value);
201+
},
202+
},
191203
});
192204
193205
const modelUpdated = () => {

Diff for: package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@kiwiproject/vue-dynamic-property-provider",
3-
"version": "0.8.0",
3+
"version": "0.9.0",
44
"private": false,
55
"type": "module",
66
"files": [

Diff for: src/App.vue

+23-11
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
v-bind:key="field.name"
1010
:field="field"
1111
:modelValue="data"
12+
mode="update"
1213
:class="
1314
field.type === 'boolean'
1415
? 'flex flex-row gap-2'
@@ -59,7 +60,8 @@ const fields = [
5960
{
6061
name: "studentId",
6162
label: "Student ID",
62-
editable: false,
63+
editableOnCreate: true,
64+
editableOnUpdate: false,
6365
visible: true,
6466
required: false,
6567
sensitive: false,
@@ -68,7 +70,8 @@ const fields = [
6870
{
6971
name: "createdAt",
7072
label: "Created At",
71-
editable: true,
73+
editableOnCreate: true,
74+
editableOnUpdate: true,
7275
visible: false,
7376
required: false,
7477
sensitive: false,
@@ -77,7 +80,8 @@ const fields = [
7780
{
7881
name: "secretAnswer",
7982
label: "Secret Answer",
80-
editable: false,
83+
editableOnCreate: false,
84+
editableOnUpdate: false,
8185
visible: true,
8286
required: false,
8387
sensitive: true,
@@ -86,7 +90,8 @@ const fields = [
8690
{
8791
name: "password",
8892
label: "Password",
89-
editable: true,
93+
editableOnCreate: true,
94+
editableOnUpdate: true,
9095
visible: true,
9196
required: true,
9297
sensitive: true,
@@ -95,7 +100,8 @@ const fields = [
95100
{
96101
name: "firstName",
97102
label: "First Name",
98-
editable: true,
103+
editableOnCreate: true,
104+
editableOnUpdate: true,
99105
visible: true,
100106
required: false,
101107
sensitive: false,
@@ -104,7 +110,8 @@ const fields = [
104110
{
105111
name: "age",
106112
label: "Age",
107-
editable: true,
113+
editableOnCreate: true,
114+
editableOnUpdate: true,
108115
visible: true,
109116
required: false,
110117
sensitive: false,
@@ -113,7 +120,8 @@ const fields = [
113120
{
114121
name: "birthDate",
115122
label: "Birthday",
116-
editable: true,
123+
editableOnCreate: true,
124+
editableOnUpdate: true,
117125
visible: true,
118126
required: false,
119127
sensitive: false,
@@ -122,7 +130,8 @@ const fields = [
122130
{
123131
name: "enabled",
124132
label: "Is Enabled?",
125-
editable: true,
133+
editableOnCreate: true,
134+
editableOnUpdate: true,
126135
visible: true,
127136
required: false,
128137
sensitive: false,
@@ -131,7 +140,8 @@ const fields = [
131140
{
132141
name: "admin",
133142
label: "Is Admin?",
134-
editable: true,
143+
editableOnCreate: true,
144+
editableOnUpdate: true,
135145
visible: true,
136146
required: false,
137147
sensitive: false,
@@ -140,7 +150,8 @@ const fields = [
140150
{
141151
name: "courses",
142152
label: "Courses",
143-
editable: true,
153+
editableOnCreate: true,
154+
editableOnUpdate: true,
144155
visible: true,
145156
required: false,
146157
sensitive: false,
@@ -155,7 +166,8 @@ const fields = [
155166
{
156167
name: "maxGradeLevel",
157168
label: "Max Grade Level",
158-
editable: true,
169+
editableOnCreate: true,
170+
editableOnUpdate: true,
159171
visible: true,
160172
required: false,
161173
sensitive: false,

0 commit comments

Comments
 (0)