๐ Analysis
Current Implementation (Not Working)
<Popover v-model:open="isAssignmentPopoverOpen">
<PopoverTrigger as-child>
<Button>...</Button>
</PopoverTrigger>
<PopoverContent>...</PopoverContent>
</Popover>
Issue: The v-model:open might be preventing the popover from opening naturally.
Working Example (DatePicker)
<Popover>
<PopoverTrigger as-child>
<Button>...</Button>
</PopoverTrigger>
<PopoverContent>...</PopoverContent>
</Popover>
Works: No v-model:open binding, lets Popover manage its own state.
๐ ๏ธ Proposed Fix
Option 1: Remove v-model:open (Recommended)
Let the Popover component manage its own open/close state naturally.
<!-- Remove v-model:open binding -->
<Popover>
<PopoverTrigger as-child>
<Button>...</Button>
</PopoverTrigger>
<PopoverContent>...</PopoverContent>
</Popover>
Pros: Simple, follows working examples, less state management
Cons: Can't programmatically control popover state
Option 2: Use @update:open event
Listen for state changes instead of binding with v-model.
<Popover @update:open="handlePopoverStateChange">
<PopoverTrigger as-child>
<Button>...</Button>
</PopoverTrigger>
<PopoverContent>...</PopoverContent>
</Popover>
Pros: Can still track state changes
Note: Need to implement handlePopoverStateChange method
Option 3: Check reka-ui version compatibility
The v-model:open might not be supported in the current reka-ui version.
// Check package.json for reka-ui version
// Verify if v-model:open is supported
๐ Implementation Steps
Step 1: Try Option 1 (Quick Fix)
- Remove
v-model:open="isAssignmentPopoverOpen" from Popover
- Remove
isAssignmentPopoverOpen ref if not used elsewhere
- Remove the watcher for
isAssignmentPopoverOpen
- Test if popover opens when clicking the button
Step 2: Adjust Member Loading
Since we can't watch for popover state, load members on button click or component mount:
// Option A: Load on component mount (current preload strategy)
onMounted(() => {
loadProjectMembers()
})
// Option B: Load on button click
<PopoverTrigger as-child>
<Button @click="loadProjectMembers">...</Button>
</PopoverTrigger>
Step 3: Handle Popover Closing
For closing popover after assignment, we can:
// Use a ref to the popover and close it programmatically
// Or rely on natural popover behavior (clicking outside closes it)