[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

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

Fix lints

Kasper (Mar 10, 2026, 4:06 PM +0100) db7802c5 ff3691a8

+15 -16
-1
mobile/package-lock.json
··· 6 6 "packages": { 7 7 "": { 8 8 "name": "ferrum", 9 - "version": "0.1.0", 10 9 "license": "MIT", 11 10 "dependencies": { 12 11 "@tauri-apps/api": "^2",
+4 -4
src/App.svelte
··· 236 236 type="button" 237 237 secondary 238 238 thin 239 - on:click={async () => { 239 + onclick={async () => { 240 240 media_keys_result = null 241 241 media_keys_result = await ipc_renderer.invoke('init_media_keys', false) 242 242 }}>Retry</Button ··· 245 245 type="button" 246 246 secondary 247 247 thin 248 - on:click={() => { 248 + onclick={() => { 249 249 media_keys_result = null 250 250 }}>Ignore</Button 251 251 > ··· 257 257 type="button" 258 258 secondary 259 259 thin 260 - on:click={async () => { 260 + onclick={async () => { 261 261 media_keys_result = null 262 262 media_keys_result = await ipc_renderer.invoke('init_media_keys', true) 263 263 }}>Give permission</Button ··· 266 266 type="button" 267 267 secondary 268 268 thin 269 - on:click={() => { 269 + onclick={() => { 270 270 media_keys_result = null 271 271 }}>Ignore</Button 272 272 >
+2 -2
src/components/CheckForUpdates.svelte
··· 61 61 <svelte:fragment slot="buttons"> 62 62 <Button 63 63 secondary 64 - on:click={() => { 64 + onclick={() => { 65 65 skip_update(channel.version) 66 66 latest_update = null 67 67 }}>Skip This Version</Button 68 68 > 69 69 <div class="grow"></div> 70 - <Button secondary on:click={() => (latest_update = null)}>Later</Button> 70 + <Button secondary onclick={() => (latest_update = null)}>Later</Button> 71 71 <Button type="submit">Update</Button> 72 72 </svelte:fragment> 73 73 </Modal>
+2 -2
src/components/ItunesImport.svelte
··· 73 73 <li>View options</li> 74 74 </ul> 75 75 <div class="buttons"> 76 - <Button secondary on:click={cancel_handler}>Cancel</Button> 76 + <Button secondary onclick={cancel_handler}>Cancel</Button> 77 77 <Button type="submit">Select File</Button> 78 78 </div> 79 79 {:else if stage === 'scanning'} ··· 95 95 <li>Tracks: {stage.tracksCount}</li> 96 96 </ul> 97 97 <div class="buttons"> 98 - <Button secondary on:click={cancel_handler}>Cancel</Button> 98 + <Button secondary onclick={cancel_handler}>Cancel</Button> 99 99 <Button type="submit">Continue</Button> 100 100 </div> 101 101 {/if}
+2 -2
src/components/PlaylistInfo.svelte
··· 41 41 ></textarea> 42 42 </main> 43 43 <svelte:fragment slot="buttons"> 44 - <Button secondary on:click={cancel}>Cancel</Button> 45 - <Button on:click={save}>Save</Button> 44 + <Button secondary onclick={cancel}>Cancel</Button> 45 + <Button onclick={save}>Save</Button> 46 46 </svelte:fragment> 47 47 </Modal> 48 48
+2 -2
src/components/Settings.svelte
··· 26 26 </label> 27 27 </div> 28 28 <svelte:fragment slot="buttons"> 29 - <Button secondary on:click={on_close}>Cancel</Button> 30 - <Button type="submit" on:click={save}>Save</Button> 29 + <Button secondary onclick={on_close}>Cancel</Button> 30 + <Button type="submit" onclick={save}>Save</Button> 31 31 </svelte:fragment> 32 32 </Modal>
+2 -2
src/components/TrackInfo.svelte
··· 509 509 <div class="spacer"></div> 510 510 </main> 511 511 <svelte:fragment slot="buttons"> 512 - <Button secondary on:click={cancel}>Cancel</Button> 513 - <Button type="submit" on:click={() => save()}>Save</Button> 512 + <Button secondary onclick={cancel}>Cancel</Button> 513 + <Button type="submit" onclick={() => save()}>Save</Button> 514 514 </svelte:fragment> 515 515 </Modal> 516 516
+1 -1
src/components/VirtualListBlock.svelte
··· 11 11 </script> 12 12 13 13 <script lang="ts" generics="T"> 14 - import { onDestroy, type Snippet } from 'svelte' 14 + import { type Snippet } from 'svelte' 15 15 16 16 type Props = { 17 17 items: T[]