Files
bitvid/js/ui/initUploadModal.js
T
google-labs-jules[bot] 2b446e8ddd Refactor upload modal for generic storage and read-only config
- Updates Upload Modal UI labels to be provider-agnostic (e.g., 'Storage Credentials', 'Endpoint').
- Implements a read-only 'Summary View' for configured storage connections, collapsing the editable form by default.
- Adds 'Manage Storage' button that navigates to the Profile Modal's storage pane.
- Updates `initUploadModal.js` to inject the navigation callback.
- Updates `r2Service.js` status messages to be generic.
- Fixes unlock flow to ensure UI updates after storage unlock.
2026-01-16 15:44:22 +00:00

75 lines
1.8 KiB
JavaScript

import { UploadModal } from "./components/UploadModal.js";
export function initUploadModal({
app = null,
uploadModalOverride = null,
container = null,
services = {},
utilities = {},
callbacks = {},
eventTarget = null,
} = {}) {
const events = eventTarget instanceof EventTarget ? eventTarget : new EventTarget();
const {
authService = null,
r2Service = null,
storageService = null,
} = services;
const {
removeTrackingScripts: removeTrackingScriptsFn = null,
setGlobalModalState: setGlobalModalStateFn = null,
} = utilities;
const {
publishVideoNote = null,
showError = null,
showSuccess = null,
getCurrentPubkey = null,
safeEncodeNpub = null,
onSubmit = null,
} = callbacks;
const modal =
(typeof uploadModalOverride === "function"
? uploadModalOverride({ app, eventTarget: events })
: uploadModalOverride) ||
new UploadModal({
authService,
r2Service,
storageService,
publishVideoNote,
removeTrackingScripts: removeTrackingScriptsFn,
setGlobalModalState: setGlobalModalStateFn,
showError,
showSuccess,
getCurrentPubkey,
safeEncodeNpub,
eventTarget: events,
container,
onRequestStorageSettings: () => {
if (app && app.profileController && typeof app.profileController.show === "function") {
app.profileController.show("storage");
}
},
});
const boundSubmitHandler =
typeof onSubmit === "function" ? (event) => onSubmit(event) : null;
if (boundSubmitHandler && typeof modal?.addEventListener === "function") {
modal.addEventListener("upload:submit", boundSubmitHandler);
}
return {
modal,
events,
handlers: {
submit: boundSubmitHandler,
},
};
}
export default initUploadModal;