ui/services: fix reactivity issue when switching between services
This commit is contained in:
@@ -128,7 +128,6 @@ const ConfigureService = () => {
|
|||||||
([instances, machines]) => {
|
([instances, machines]) => {
|
||||||
// Wait for all queries to be ready
|
// Wait for all queries to be ready
|
||||||
if (!instances || !machines) return;
|
if (!instances || !machines) return;
|
||||||
|
|
||||||
const instance = instances[routerProps.id || routerProps.name];
|
const instance = instances[routerProps.id || routerProps.name];
|
||||||
|
|
||||||
set("roles", {});
|
set("roles", {});
|
||||||
@@ -147,6 +146,15 @@ const ConfigureService = () => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const currentModuleRoles = createMemo(() => {
|
||||||
|
const module = selectedModule();
|
||||||
|
if (!module) return [];
|
||||||
|
return Object.keys(module.info.roles).map((role) => ({
|
||||||
|
role,
|
||||||
|
members: store.roles?.[role] || [],
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
const tagsQuery = useTags(useClanURI());
|
const tagsQuery = useTags(useClanURI());
|
||||||
|
|
||||||
const options = useOptions(tagsQuery, machinesQuery);
|
const options = useOptions(tagsQuery, machinesQuery);
|
||||||
@@ -220,12 +228,11 @@ const ConfigureService = () => {
|
|||||||
when={serviceModulesQuery.data && store.roles}
|
when={serviceModulesQuery.data && store.roles}
|
||||||
fallback={<div>Loading...</div>}
|
fallback={<div>Loading...</div>}
|
||||||
>
|
>
|
||||||
<For each={Object.keys(selectedModule()?.info.roles || {})}>
|
<For each={currentModuleRoles()}>
|
||||||
{(role) => {
|
{(role) => {
|
||||||
const values = store.roles?.[role] || [];
|
|
||||||
return (
|
return (
|
||||||
<TagSelect<TagType>
|
<TagSelect<TagType>
|
||||||
label={role}
|
label={role.role}
|
||||||
renderItem={(item: TagType) => (
|
renderItem={(item: TagType) => (
|
||||||
<Tag
|
<Tag
|
||||||
inverted
|
inverted
|
||||||
@@ -240,10 +247,10 @@ const ConfigureService = () => {
|
|||||||
{item.label}
|
{item.label}
|
||||||
</Tag>
|
</Tag>
|
||||||
)}
|
)}
|
||||||
values={values}
|
values={role.members}
|
||||||
options={options()}
|
options={options()}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
set("currentRole", role);
|
set("currentRole", role.role);
|
||||||
stepper.next();
|
stepper.next();
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user