Skip to content

Commit fa92a90

Browse files
authored
Refine Storage interface (#195)
* Moved listProjects function from Storage interface to projects.ts. Added listModules and fetchModuleDataModifiedMillis functions to Storage interface. * Removed createProject and createModule functions from Storage interface. * In common_storage, modified Storage interface: Added modulePathFilter parameter to listModules. Removed renameProject and copyProject. Removed moduleType parameter from deleteModule. In client_side_storage: Updated implementation of Storage interface (see above). Removed _renameOrCopyProject. In names: Added makeModulePathPrefix. In project: Updated renameProject and copyProject functions. Added renameOrCopyProject function. * Removed renameModule and copyModule from Storage interface. Removed renameModule, copyModule, and _renameOrCopyModule from client_side_storage In project.ts, updated implementation of renameModuleInProject and copyModuleInProject. Added renameOrCopyModule function. * Removed deleteProject from Storage interface. Removed deleteProject from client_side_storage. In project.ts, updated implementation of deleteProject. * Removed downloadProject from Storage interface. Removed downloadProject from client_side_storage. In project.ts, replaced produceDownloadProjectBlob with downloadProject. In Menu.tsx, call storageProject.downloadProject instead of storage.downloadProject. * Removed uploadProject from Storage interface. Removed uploadProject from client_side_storage. In project.ts: Added uploadProject function. Modified processUploadedBlob to return just classNameToModuleContentText. Moved code from processUploadedModule to processUploadedBlob. In Menu.tsx, call storageProject.uploadProject instead of storage.uploadProject.
1 parent 02662fe commit fa92a90

File tree

6 files changed

+265
-508
lines changed

6 files changed

+265
-508
lines changed

src/reactComponents/Menu.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ export function Component(props: MenuProps): React.JSX.Element {
199199
return;
200200
}
201201
try {
202-
const array = await props.storage.listProjects();
202+
const array = await storageProject.listProjects(props.storage);
203203
setProjects(array);
204204
resolve(array);
205205
} catch (e) {
@@ -336,7 +336,7 @@ export function Component(props: MenuProps): React.JSX.Element {
336336
}
337337

338338
try {
339-
const blobUrl = await props.storage.downloadProject(props.project.projectName);
339+
const blobUrl = await storageProject.downloadProject(props.storage, props.project.projectName);
340340
const filename = props.project.projectName + storageNames.UPLOAD_DOWNLOAD_FILE_EXTENSION;
341341

342342
// Create a temporary link to download the file
@@ -389,7 +389,7 @@ export function Component(props: MenuProps): React.JSX.Element {
389389
const file = options.file as RcFile;
390390
const uploadProjectName = storageProject.makeUploadProjectName(file.name, existingProjectNames);
391391
if (props.storage) {
392-
props.storage.uploadProject(uploadProjectName, dataUrl);
392+
storageProject.uploadProject(props.storage, uploadProjectName, dataUrl);
393393
}
394394
};
395395
reader.onerror = (_error) => {

src/reactComponents/ProjectManageModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export default function ProjectManageModal(props: ProjectManageModalProps): Reac
7272

7373
/** Loads projects from storage and sorts them alphabetically. */
7474
const loadProjects = async (storage: commonStorage.Storage): Promise<void> => {
75-
const projects = await storage.listProjects();
75+
const projects = await storageProject.listProjects(storage);
7676

7777
// Sort projects alphabetically by name
7878
projects.sort((a, b) => a.projectName.localeCompare(b.projectName));

0 commit comments

Comments
 (0)