export const makeMergedPrefs = (alt, base) => {
  let finalPrefs = base;
  let baseData = base.value;
  let altData = alt.value;
  if (!altData) {
    return base;
  }

  let mergedBlockListSet = new Set(baseData.blocked || []);
  let mergedSubscriptionsSet = new Set(baseData.subscriptions || []);
  let mergedTagsSet = new Set(baseData.tags || []);

  const altBlocklist = altData.blocked || [];
  const altSubscriptions = altData.subscriptions || [];
  const altTags = altData.tags || [];

  if (altBlocklist.length) {
    altBlocklist.forEach((el) => mergedBlockListSet.add(el));
  }
  if (altSubscriptions.length) {
    altSubscriptions.forEach((el) => mergedSubscriptionsSet.add(el));
  }
  if (altTags.length) {
    altTags.forEach((el) => mergedTagsSet.add(el));
  }

  baseData.blocked = Array.from(mergedBlockListSet);
  baseData.subscriptions = Array.from(mergedSubscriptionsSet);
  baseData.tags = Array.from(mergedTagsSet);
  finalPrefs.value = baseData;
  return finalPrefs;
};