A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: ability to revert to default sort

+38 -11
+10
src/components/engine/scope/element.js
··· 31 31 // Broadcast if needed 32 32 if (this.hasAttribute("group")) { 33 33 const actions = this.broadcast(this.identifier, { 34 + revertToDefaultSort: { 35 + strategy: "replicate", 36 + fn: this.revertToDefaultSort, 37 + }, 34 38 setGroupBy: { strategy: "replicate", fn: this.setGroupBy }, 35 39 setPlaylist: { strategy: "replicate", fn: this.setPlaylist }, 36 40 setSearchTerm: { strategy: "replicate", fn: this.setSearchTerm }, ··· 39 43 }); 40 44 41 45 if (actions) { 46 + this.revertToDefaultSort = actions.revertToDefaultSort; 42 47 this.setGroupBy = actions.setGroupBy; 43 48 this.setPlaylist = actions.setPlaylist; 44 49 this.setSearchTerm = actions.setSearchTerm; ··· 111 116 } 112 117 113 118 // ACTIONS 119 + 120 + revertToDefaultSort = async () => { 121 + this.#sortBy.value = ["createdAt"]; 122 + this.#sortDirection.value = "desc"; 123 + }; 114 124 115 125 /** @param {string | undefined} val */ 116 126 setGroupBy = async (val) => this.#groupBy.value = val;
+8 -4
src/components/transformer/output/refiner/track-uri-passkey/passkey.js
··· 260 260 name: "HKDF", 261 261 hash: "SHA-256", 262 262 263 - // @ts-ignore 264 - salt: utf8.decode("diffuse-atproto-passkey-salt"), 263 + salt: 264 + /** @type {ArrayBuffer} */ (/** @type {unknown} */ (utf8.decode( 265 + "diffuse-atproto-passkey-salt", 266 + ))), 265 267 266 - // @ts-ignore 267 - info: utf8.decode("diffuse-atproto-track-uri"), 268 + info: 269 + /** @type {ArrayBuffer} */ (/** @type {unknown} */ (utf8.decode( 270 + "diffuse-atproto-track-uri", 271 + ))), 268 272 }, 269 273 keyMaterial, 270 274 256,
-1
src/service-worker-offline.js
··· 1 - /// <reference no-default-lib="true" /> 2 1 /// <reference lib="webworker" /> 3 2 4 3 import { create as createCid } from "./common/cid.js";
+20 -6
src/themes/webamp/browser/element.js
··· 238 238 JSON.stringify(scope.sortBy()); 239 239 240 240 if (isActive) { 241 - scope.setSortDirection( 242 - scope.sortDirection() === "desc" ? undefined : "desc", 243 - ); 241 + if (scope.sortDirection() === "desc") { 242 + scope.revertToDefaultSort(); 243 + } else { 244 + scope.setSortDirection("desc"); 245 + } 244 246 } else { 245 247 scope.setSortBy(COLUMN_SORT[column] ?? []); 246 248 scope.setSortDirection(undefined); ··· 340 342 user-select: none; 341 343 width: 30%; 342 344 345 + &:after { 346 + font-size: 82%; 347 + position: absolute; 348 + right: 6px; 349 + } 350 + 343 351 &:first-child { 344 352 width: 40%; 345 353 } ··· 406 414 <th 407 415 aria-sort="${ariaSort(`title`)}" 408 416 @click="${() => this.sortByColumn(`title`)}" 409 - >Title</th> 417 + > 418 + Title 419 + </th> 410 420 <th 411 421 aria-sort="${ariaSort(`artist`)}" 412 422 @click="${() => this.sortByColumn(`artist`)}" 413 - >Artist</th> 423 + > 424 + Artist 425 + </th> 414 426 <th 415 427 aria-sort="${ariaSort(`album`)}" 416 428 @click="${() => this.sortByColumn(`album`)}" 417 - >Album</th> 429 + > 430 + Album 431 + </th> 418 432 </tr> 419 433 </thead> 420 434 </table>