@scalar/api-client
Version: 
the open source API testing client
33 lines (32 loc) • 923 B
JavaScript
function U(l, v) {
  return {
    handleDragEnd: (t, d) => {
      if (!t || !d)
        return;
      const { id: s, parentId: i } = t, { id: x, parentId: p, offset: u } = d;
      if (i !== p)
        return;
      const e = l.value.find((n) => n.uid === i);
      if (!e || !e["x-scalar-environments"])
        return;
      const o = e["x-scalar-environments"], r = Object.keys(o);
      ({ ...o });
      const f = r.findIndex((n) => n === s);
      r.splice(f, 1);
      const g = r.findIndex((n) => n === x) + (u === 1 ? 1 : 0);
      r.splice(g, 0, s);
      const I = r.reduce(
        (n, a) => {
          const c = o[a];
          return c && (n[a] = c), n;
        },
        {}
      );
      e["x-scalar-environments"] = I, v.edit(e.uid, "x-scalar-environments", e["x-scalar-environments"]);
    },
    isDroppable: (t, d) => t.parentId === d.parentId
  };
}
export {
  U as environmentDragHandlerFactory
};