mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-18 09:06:10 +00:00
* Split demo site into its own package Move the demo site from packages/webamp/demo/ into packages/webamp-demo/ as a standalone workspace package. This cleanly separates the library (published to npm) from the demo site (deployed to webamp.org). Key changes: - Demo imports webamp source via relative paths (no aliases needed) - Demo has its own package.json with demo-specific deps - Simplified vite config (just nodePolyfills plugin) - Removed vite branching from rollupPlugins.mjs (library-only now) - Renamed build-library -> build in webamp package - Updated turbo.json, CI, netlify config, and code-size workflow - Removed demo-only deps from webamp package (sentry, butterchurn stays for the butterchurn bundle) - Zero bundle size change for the library Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix: add type-check dependency to webamp#build task The webamp-docs package needs type declarations from webamp to type-check. These are generated by tsc (type-check), which must run before the build task. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add updated readme to webamp-demo package Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Document the live reloading dev flow in both readmes Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix code-size CI: use deploy script that exists on both branches The compressed-size-action checks out master and runs the build script. Master doesn't have a root "build" script, so revert to using "deploy" which exists on both branches. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { FilePicker } from "../../webamp/js/types";
|
|
|
|
interface DropboxFile {
|
|
link: string;
|
|
name: string;
|
|
}
|
|
|
|
// Requires Dropbox's Chooser to be loaded on the page
|
|
function genAudioFileUrlsFromDropbox(): Promise<DropboxFile[]> {
|
|
return new Promise((resolve, reject) => {
|
|
// @ts-ignore
|
|
if (window.Dropbox == null) {
|
|
reject();
|
|
}
|
|
// @ts-ignore
|
|
window.Dropbox.choose({
|
|
success: resolve,
|
|
error: reject,
|
|
linkType: "direct",
|
|
folderselect: false,
|
|
multiselect: true,
|
|
extensions: ["video", "audio"],
|
|
});
|
|
});
|
|
}
|
|
const dropboxFilePicker: FilePicker = {
|
|
contextMenuName: "Dropbox...",
|
|
filePicker: async () => {
|
|
alert(
|
|
`Dropbox integration is currently disabled. See https://github.com/captbaritone/webamp/issues/750 for more information.`
|
|
);
|
|
// https://github.com/captbaritone/webamp/issues/750
|
|
const files = await genAudioFileUrlsFromDropbox();
|
|
return files.map((file) => ({
|
|
url: file.link,
|
|
defaultName: file.name,
|
|
}));
|
|
},
|
|
requiresNetwork: true,
|
|
};
|
|
|
|
export default dropboxFilePicker;
|