Skip to content

Commit e57ba21

Browse files
committed
feat: Support initializing with a default value.
1 parent 61b32d3 commit e57ba21

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

packages/vue-place-selector/src/components/place-selector.vue

+10-1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ const modelValue = defineModel<string | number | null>('modelValue', {
5555
// Reactive states
5656
const options = ref<Place[]>([])
5757
const loading = ref(false)
58+
const initialized = ref(false)
5859
const selectedValue = ref<string | number | null>(null)
5960
6061
// Local reactive copy of params to avoid mutating the prop directly
@@ -116,7 +117,11 @@ const fetchPlaces = async () => {
116117
emitChange(selectedValue.value)
117118
} else {
118119
selectedValue.value = modelValue.value
120+
if (!initialized.value) {
121+
emitChange(selectedValue.value)
122+
}
119123
}
124+
120125
doneBus.emit({ key: props.type, value: selected.value?.iso2 ?? selectedValue.value! }) // Indicate data is ready
121126
} catch (error) {
122127
emit('error', 'Error fetching places:', error)
@@ -126,6 +131,7 @@ const fetchPlaces = async () => {
126131
127132
// Emit value changes to parent and event bus
128133
const emitChange = (value: string | number | null) => {
134+
initialized.value = true
129135
if (value !== null) {
130136
modelValue.value = value
131137
bus.emit({ key: props.type, value: selected.value?.iso2 ?? value })
@@ -141,6 +147,7 @@ const onChange = () => {
141147
// eslint-disable-next-line @typescript-eslint/no-explicit-any
142148
const onUpdateModelValue = (value: any) => {
143149
selectedValue.value = value
150+
modelValue.value = value
144151
emitChange(value)
145152
}
146153
@@ -162,6 +169,8 @@ doneBus.on(({ key, value }) => {
162169
163170
// Fetch data on mount
164171
onMounted(async () => {
165-
await fetchPlaces()
172+
if (Object.values(localParams.value).length <= 0) {
173+
await fetchPlaces()
174+
}
166175
})
167176
</script>

pnpm-workspace.yaml

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
packages:
22
- packages/*
3-
# - runner
4-
- '!runner'
3+
- runner
4+
# - '!runner'
55
- '!package-template'
66
# - '!packages/vue-place-selector'
7-
- '!packages/otp-input'
8-
- '!packages/vue-auth'
9-
- '!packages/vue-trix'
10-
- '!packages/vue-forms'
11-
- '!packages/vue-dataviewer'
12-
- '!packages/paystack-inline'
7+
# - '!packages/otp-input'
8+
# - '!packages/vue-auth'
9+
# - '!packages/vue-trix'
10+
# - '!packages/vue-forms'
11+
# - '!packages/vue-dataviewer'
12+
# - '!packages/paystack-inline'

runner/Pages/components/VueCsc.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ import { VuePlaceSelector } from '../../../packages/vue-place-selector'
4646
import { ref } from 'vue'
4747
4848
const form = ref({
49-
country: '',
50-
state: '',
49+
country: 'Nigeria',
50+
state: 'Lagos',
5151
city: ''
5252
})
5353
</script>

0 commit comments

Comments
 (0)