mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2024-04-21 12:32:08 +00:00
chore (refactoring): get rid of behavior subject
This commit is contained in:
@@ -56,7 +56,7 @@ export default async function(render) {
|
||||
effect(init$.pipe(
|
||||
rxjs.mergeMap(($nodes) => $nodes),
|
||||
rxjs.mergeMap(($node) => onClick($node)),
|
||||
rxjs.map(($node) => addBackendEnabled($node.getAttribute("data-label"))),
|
||||
rxjs.mergeMap(($node) => addBackendEnabled($node.getAttribute("data-label"))),
|
||||
saveConnections(),
|
||||
));
|
||||
|
||||
@@ -106,7 +106,7 @@ export default async function(render) {
|
||||
rxjs.mergeMap(($nodes) => $nodes),
|
||||
rxjs.mergeMap(($node) => onClick($node.querySelector(".icons"))),
|
||||
rxjs.map(($node) => qs($node.parentElement, "input").value),
|
||||
rxjs.map((label) => removeBackendEnabled(label)),
|
||||
rxjs.mergeMap((label) => removeBackendEnabled(label)),
|
||||
saveConnections(),
|
||||
));
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { formObjToJSON$ } from "./helper_form.js";
|
||||
|
||||
export { getBackends as getBackendAvailable } from "./model_backend.js";
|
||||
|
||||
const backendsEnabled$ = new rxjs.BehaviorSubject([]);
|
||||
const backendsEnabled$ = new rxjs.ReplaySubject(1);
|
||||
|
||||
export async function initStorage() {
|
||||
return await getConfig().pipe(
|
||||
@@ -21,32 +21,40 @@ export function getBackendEnabled() {
|
||||
}
|
||||
|
||||
export function addBackendEnabled(type) {
|
||||
const existingLabels = new Set();
|
||||
backendsEnabled$.value.forEach((obj) => {
|
||||
existingLabels.add(obj.label.toLowerCase());
|
||||
});
|
||||
return backendsEnabled$.pipe(
|
||||
rxjs.first(),
|
||||
rxjs.map((backends) => {
|
||||
const existingLabels = new Set();
|
||||
backends.forEach((obj) => {
|
||||
existingLabels.add(obj.label.toLowerCase());
|
||||
});
|
||||
|
||||
let label = ""; let i = 1;
|
||||
while (true) {
|
||||
label = type + (i === 1 ? "" : ` ${i}`);
|
||||
if (existingLabels.has(label) === false) break;
|
||||
i += 1;
|
||||
}
|
||||
let label = ""; let i = 1;
|
||||
while (true) {
|
||||
label = type + (i === 1 ? "" : ` ${i}`);
|
||||
if (existingLabels.has(label) === false) break;
|
||||
i += 1;
|
||||
}
|
||||
|
||||
const b = backendsEnabled$.value.concat({ type, label });
|
||||
backendsEnabled$.next(b);
|
||||
return b;
|
||||
const b = backends.concat({ type, label });
|
||||
backendsEnabled$.next(b);
|
||||
return b;
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
export function removeBackendEnabled(labelToRemove) {
|
||||
const b = backendsEnabled$.value.filter(({ label }) => {
|
||||
return label !== labelToRemove;
|
||||
});
|
||||
backendsEnabled$.next(b);
|
||||
return b;
|
||||
return backendsEnabled$.pipe(
|
||||
rxjs.first(),
|
||||
rxjs.map((backends) => {
|
||||
const b = backends.filter(({ label }) => label !== labelToRemove);
|
||||
backendsEnabled$.next(b);
|
||||
return b;
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
const middlewareEnabled$ = new rxjs.BehaviorSubject(null);
|
||||
const middlewareEnabled$ = new rxjs.ReplaySubject(1);
|
||||
|
||||
export async function initMiddleware() {
|
||||
return await getAdminConfig().pipe(
|
||||
|
||||
Reference in New Issue
Block a user