diff --git a/ts/components/ButtonGroup.svelte b/ts/components/ButtonGroup.svelte
index 53d834d30..6e2ef5989 100644
--- a/ts/components/ButtonGroup.svelte
+++ b/ts/components/ButtonGroup.svelte
@@ -41,15 +41,17 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
makeInterface(makeRegistration);
$: for (const [index, item] of $items.entries()) {
- if ($items.length === 1) {
- item.position.set(ButtonPosition.Standalone);
- } else if (index === 0) {
- item.position.set(ButtonPosition.Leftmost);
- } else if (index === $items.length - 1) {
- item.position.set(ButtonPosition.Rightmost);
- } else {
- item.position.set(ButtonPosition.Center);
- }
+ item.position.update(() => {
+ if ($items.length === 1) {
+ return ButtonPosition.Standalone;
+ } else if (index === 0) {
+ return ButtonPosition.Leftmost;
+ } else if (index === $items.length - 1) {
+ return ButtonPosition.Rightmost;
+ } else {
+ return ButtonPosition.Center;
+ }
+ });
}
setContext(buttonGroupKey, registerComponent);
@@ -99,7 +101,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
role="group"
>
- {#each $dynamicItems as item}
+ {#each $dynamicItems as item (item[0].id)}
diff --git a/ts/components/registration.ts b/ts/components/registration.ts
index 5b03b5f02..0ee6fa226 100644
--- a/ts/components/registration.ts
+++ b/ts/components/registration.ts
@@ -50,8 +50,11 @@ export function makeInterface(
index: number = registrations.length,
registration = makeRegistration()
): T {
- registrations.splice(index, 0, registration);
- items.set(registrations);
+ items.update((registrations) => {
+ registrations.splice(index, 0, registration);
+ return registrations;
+ });
+
return registration;
}
diff --git a/ts/editor/Components.svelte b/ts/editor/Components.svelte
index 92465eefa..c324f1255 100644
--- a/ts/editor/Components.svelte
+++ b/ts/editor/Components.svelte
@@ -10,6 +10,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import WithState from "components/WithState.svelte";
import * as contextKeys from "components/context-keys";
+ import * as editorContextKeys from "./context-keys";
export const components = {
IconButton,
@@ -17,6 +18,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
WithShortcut,
WithContext,
WithState,
- contextKeys,
+ contextKeys: { ...contextKeys, ...editorContextKeys },
};