MCPcopy Create free account
hub / github.com/bewcloud/bewcloud / MainFiles

Function MainFiles

public/components/files/MainFiles.js:11–761  ·  view source on GitHub ↗
({
  initialDirectories,
  initialFiles,
  initialPath,
  baseUrl,
  isFileSharingAllowed,
  areDirectoryDownloadsAllowed,
  fileShareId,
  initialSortBy = 'name',
  initialSortOrder = 'asc'
})

Source from the content-addressed store, hash-verified

9import CreateShareModal from "./CreateShareModal.js";
10import ManageShareModal from "./ManageShareModal.js";
11export default function MainFiles({
12 initialDirectories,
13 initialFiles,
14 initialPath,
15 baseUrl,
16 isFileSharingAllowed,
17 areDirectoryDownloadsAllowed,
18 fileShareId,
19 initialSortBy = 'name',
20 initialSortOrder = 'asc'
21}) {
22 const isAdding = useSignal(false);
23 const isUploading = useSignal(false);
24 const uploadProgress = useSignal('');
25 const isDeleting = useSignal(false);
26 const isUpdating = useSignal(false);
27 const directories = useSignal(initialDirectories);
28 const files = useSignal(initialFiles);
29 const path = useSignal(initialPath);
30 const sortBy = useSignal(initialSortBy);
31 const sortOrder = useSignal(initialSortOrder);
32 const chosenDirectories = useSignal([]);
33 const chosenFiles = useSignal([]);
34 const isAnyItemChosen = chosenDirectories.value.length > 0 || chosenFiles.value.length > 0;
35 const bulkItemsCount = chosenDirectories.value.length + chosenFiles.value.length;
36 const areNewOptionsOpen = useSignal(false);
37 const areBulkOptionsOpen = useSignal(false);
38 const isNewDirectoryModalOpen = useSignal(false);
39 const renameDirectoryOrFileModal = useSignal(null);
40 const moveDirectoryOrFileModal = useSignal(null);
41 const createShareModal = useSignal(null);
42 const manageShareModal = useSignal(null);
43 function onClickSort(column) {
44 let newSortOrder = 'asc';
45 if (sortBy.value === column) {
46 newSortOrder = sortOrder.value === 'asc' ? 'desc' : 'asc';
47 } else {
48 newSortOrder = 'asc';
49 }
50 sortBy.value = column;
51 sortOrder.value = newSortOrder;
52 const sortOptions = {
53 sortBy: column,
54 sortOrder: newSortOrder
55 };
56 directories.value = sortDirectories(directories.value, sortOptions);
57 files.value = sortFiles(files.value, sortOptions);
58 const url = new URL(window.location.href);
59 url.searchParams.set('sortBy', column);
60 url.searchParams.set('sortOrder', newSortOrder);
61 window.history.replaceState({}, '', url.toString());
62 if (!fileShareId) {
63 fetch('/api/files/update-sort', {
64 method: 'POST',
65 body: JSON.stringify({
66 sortBy: column,
67 sortOrder: newSortOrder
68 })

Callers

nothing calls this directly

Calls 6

onClickBulkDeleteFunction · 0.70
toggleNewOptionsDropdownFunction · 0.70
onClickUploadFileFunction · 0.70
onClickCreateDirectoryFunction · 0.70
hFunction · 0.50

Tested by

no test coverage detected