Skip to content

Commit d058fee

Browse files
committed
🐛 Fix: Changing block display properties does not update the project's saved flag
1 parent 70e4eed commit d058fee

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

src/components/vanillaBlockDisplayElementPanel.svelte

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,55 @@
1-
<script lang="ts" context="module">
1+
<script lang="ts">
22
import { VanillaBlockDisplay } from '../outliner/vanillaBlockDisplay'
33
import { events } from '../util/events'
44
import { Valuable } from '../util/stores'
55
import { translate } from '../util/translation'
6-
</script>
76
8-
<script lang="ts">
97
let selectedDisplay = VanillaBlockDisplay.selected.at(0)
8+
let lastSelected = selectedDisplay
109
1110
let block = new Valuable<string>('')
1211
let error = new Valuable<string>('')
1312
let visible = false
1413
14+
let unsub: (() => void) | undefined
15+
1516
events.UPDATE_SELECTION.subscribe(() => {
17+
unsub?.()
18+
19+
lastSelected = selectedDisplay
1620
selectedDisplay = VanillaBlockDisplay.selected.at(0)
17-
if (!selectedDisplay || selected.length > 1) {
18-
block = new Valuable('')
19-
error = new Valuable('')
21+
22+
if (!selectedDisplay) {
2023
visible = false
2124
return
2225
}
23-
block = selectedDisplay._block
26+
27+
$block = selectedDisplay.block
2428
error = selectedDisplay.error
2529
visible = true
30+
31+
unsub = block.subscribe(value => {
32+
if (selectedDisplay == undefined || selectedDisplay !== lastSelected) {
33+
lastSelected = selectedDisplay
34+
return
35+
}
36+
if (value === selectedDisplay.block) return
37+
38+
Undo.initEdit({ elements: VanillaBlockDisplay.selected })
39+
40+
if (VanillaBlockDisplay.selected.length > 1) {
41+
for (const display of VanillaBlockDisplay.selected) {
42+
display.block = value
43+
}
44+
} else {
45+
selectedDisplay.block = value
46+
}
47+
Project!.saved = false
48+
49+
Undo.finishEdit(`Change Block Display Block to "${$block}"`, {
50+
elements: VanillaBlockDisplay.selected,
51+
})
52+
})
2653
})
2754
</script>
2855

0 commit comments

Comments
 (0)