|
|
@@ -0,0 +1,66 @@
|
|
|
+console.log('popup.js is doing something');
|
|
|
+window.tempData = {
|
|
|
+ temp: 'howdy temp',
|
|
|
+ init() {
|
|
|
+ console.log('temp init function');
|
|
|
+ this.temp = 'seeya temp'
|
|
|
+ },
|
|
|
+}
|
|
|
+console.log('popup.js is CONTINUING');
|
|
|
+document.addEventListener('alpine:init', () => {
|
|
|
+ console.log('doing MORE');
|
|
|
+ console.log('doing MORE', Alpine);
|
|
|
+ Alpine.data('playlistManager', () => ({
|
|
|
+ temp: "hey temp",
|
|
|
+ playlists: {},
|
|
|
+
|
|
|
+ init() {
|
|
|
+ this.loadPlaylists();
|
|
|
+ },
|
|
|
+
|
|
|
+ async loadPlaylists() {
|
|
|
+ try {
|
|
|
+ const result = await browser.storage.local.get("playlists");
|
|
|
+ console.log('LOAD RESULT', result);
|
|
|
+ this.playlists = result.playlists || {};
|
|
|
+ } catch (error) {
|
|
|
+ console.error("Error loading playlists:", error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ formatPlaylistName(name) {
|
|
|
+ // Convert "listening-1" to "Listening - 1"
|
|
|
+ return name
|
|
|
+ .split('-')
|
|
|
+ .map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
|
|
+ .join(' - ');
|
|
|
+ },
|
|
|
+
|
|
|
+ openVideo(url) {
|
|
|
+ browser.tabs.create({ url });
|
|
|
+ },
|
|
|
+
|
|
|
+ async removeVideo(playlistName, index) {
|
|
|
+ // Make a copy of the current playlist
|
|
|
+ const playlist = [...this.playlists[playlistName]];
|
|
|
+
|
|
|
+ // Remove the video at the specified index
|
|
|
+ playlist.splice(index, 1);
|
|
|
+
|
|
|
+ // Create an updated playlists object with the remaining playlists unchanged
|
|
|
+ const updatedPlaylists = {
|
|
|
+ ...this.playlists,
|
|
|
+ [playlistName]: playlist
|
|
|
+ };
|
|
|
+
|
|
|
+ // Update the playlists in storage
|
|
|
+ try {
|
|
|
+ await browser.storage.local.set({ playlists: updatedPlaylists });
|
|
|
+ this.playlists = updatedPlaylists;
|
|
|
+ } catch (error) {
|
|
|
+ console.error("Error removing video:", error);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }));
|
|
|
+});
|
|
|
+console.log('popup.js FINISHED doing something');
|