JSFiddle - React, Tailwind, and code Playground

by serGlazkov

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/umd/qim.min.js"></script>

JavaScript

const data = [{
    "directoryId": "270cba471dcab9eb51c321da8d1953c6",
    "contents": [{
        "documentId": "fb1f578b2173445a69318e3a1539ce83",
        "linkToDocument": "/api/students/04126fae-ab7b-44cd-bbd5-777bd566ab0c/work-product/document/fb1f578b2173445a69318e3a1539ce83",
        "path": "newfolder/123file.txt",
        "name": "123file.txt"
      },
      {
        "documentId": "d35ad1bb8d76cb48f2fad4b2af8a7010",
        "linkToDocument": "/api/students/04126fae-ab7b-44cd-bbd5-777bd566ab0c/work-product/document/d35ad1bb8d76cb48f2fad4b2af8a7010",
        "path": "newfolder/file333.txt",
        "name": "file333.txt"
      }
    ],
    "linkToDirectory": "/api/students/04126fae-ab7b-44cd-bbd5-777bd566ab0c/work-product/directory/270cba471dcab9eb51c321da8d1953c6",
    "path": "newfolder",
    "name": "newfolder"
  },
  {
    "documentId": "b52f6f78c93f7934d640cc67ae99fbd1",
    "linkToDocument": "/api/students/04126fae-ab7b-44cd-bbd5-777bd566ab0c/work-product/document/b52f6f78c93f7934d640cc67ae99fbd1",
    "path": "123.txt",
    "name": "123.txt"
  },
  {
    "documentId": "59323c6ddd87a0c15a5d85af7e01b3d3",
    "linkToDocument": "/api/students/04126fae-ab7b-44cd-bbd5-777bd566ab0c/work-product/document/59323c6ddd87a0c15a5d85af7e01b3d3",
    "path": "333.txt",
    "name": "333.txt"
  }
]

const currentFolder = '333.txt';

const $eachElements = $nav(item => {
  if (Array.isArray(item)) {
    return [$each, $eachElements];
  }
  if (Array.isArray(item.contents)) {
    if (item.path === currentFolder) {
      return [];
    }
    return ['contents', $each, $eachElements];
  }
  return [];
});

const currentFolderObj = find(
  [$eachElements, file => file.path === currentFolder],
  data,
);

console.log(currentFolderObj);