@@ -22,6 +22,7 @@ const props = defineProps<{
2222 selectedVersion? : string
2323}>()
2424
25+ const QUERY_MODAL_VALUE = ' versions'
2526const chartModal = useModal (' chart-modal' )
2627const hasDistributionModalTransitioned = shallowRef (false )
2728const isDistributionModalOpen = shallowRef (false )
@@ -34,13 +35,23 @@ function clearDistributionModalFallbackTimer() {
3435 }
3536}
3637
38+ const router = useRouter ()
39+ const route = useRoute ()
40+
3741async function openDistributionModal() {
3842 isDistributionModalOpen .value = true
3943 hasDistributionModalTransitioned .value = false
4044 // ensure the component renders before opening the dialog
4145 await nextTick ()
4246 chartModal .open ()
4347
48+ await router .replace ({
49+ query: {
50+ ... route .query ,
51+ modal: QUERY_MODAL_VALUE ,
52+ },
53+ })
54+
4455 // Fallback: Force mount if transition event doesn't fire
4556 clearDistributionModalFallbackTimer ()
4657 distributionModalFallbackTimer = setTimeout (() => {
@@ -52,10 +63,24 @@ async function openDistributionModal() {
5263
5364function closeDistributionModal() {
5465 isDistributionModalOpen .value = false
66+
67+ router .replace ({
68+ query: {
69+ ... route .query ,
70+ modal: undefined ,
71+ },
72+ })
73+
5574 hasDistributionModalTransitioned .value = false
5675 clearDistributionModalFallbackTimer ()
5776}
5877
78+ onMounted (() => {
79+ if (route .query .modal === QUERY_MODAL_VALUE ) {
80+ openDistributionModal ()
81+ }
82+ })
83+
5984function handleDistributionModalTransitioned() {
6085 hasDistributionModalTransitioned .value = true
6186 clearDistributionModalFallbackTimer ()
0 commit comments