Unfollow tool for Bluesky

add bsky profile and did doc redirection

Changed files
+38 -4
src
+26 -4
src/App.tsx
··· 472 <div> 473 <label for={"record" + index()} class="flex flex-col"> 474 <Show when={record.handle.length}> 475 - <span>@{record.handle}</span> 476 </Show> 477 - <span>{record.did}</span> 478 <span>{record.status_label}</span> 479 </label> 480 </div> ··· 527 href="https://bsky.app/profile/did:plc:b3pn34agqqchkaf75v7h43dk" 528 target="_blank" 529 > 530 - <div class="i-fa6-brands-bluesky text-xl" /> 531 </a> 532 <a 533 title="GitHub" 534 href="https://github.com/notjuliet/cleanfollow-bsky" 535 target="_blank" 536 > 537 - <div class="i-bi-github text-xl" /> 538 </a> 539 </div> 540 </div>
··· 472 <div> 473 <label for={"record" + index()} class="flex flex-col"> 474 <Show when={record.handle.length}> 475 + <span class="flex items-center gap-x-1"> 476 + @{record.handle} 477 + <a 478 + href={`https://bsky.app/profile/${record.did}`} 479 + target="_blank" 480 + class="flex items-center text-blue-500 hover:underline dark:text-blue-400" 481 + > 482 + <button class="i-tabler-external-link text-sm" /> 483 + </a> 484 + </span> 485 </Show> 486 + <span class="flex items-center gap-x-1"> 487 + {record.did} 488 + <a 489 + href={ 490 + record.did.startsWith("did:plc:") ? 491 + `https://web.plc.directory/did/${record.did}` 492 + : `https://${record.did.replace("did:web:", "")}/.well-known/did.json` 493 + } 494 + target="_blank" 495 + class="flex items-center text-blue-500 hover:underline dark:text-blue-400" 496 + > 497 + <button class="i-tabler-external-link text-sm" /> 498 + </a> 499 + </span> 500 <span>{record.status_label}</span> 501 </label> 502 </div> ··· 549 href="https://bsky.app/profile/did:plc:b3pn34agqqchkaf75v7h43dk" 550 target="_blank" 551 > 552 + <button class="i-fa6-brands-bluesky text-xl" /> 553 </a> 554 <a 555 title="GitHub" 556 href="https://github.com/notjuliet/cleanfollow-bsky" 557 target="_blank" 558 > 559 + <button class="i-bi-github text-xl" /> 560 </a> 561 </div> 562 </div>
+12
src/icons.css
··· 45 width: 1.2em; 46 height: 1.2em; 47 }
··· 45 width: 1.2em; 46 height: 1.2em; 47 } 48 + 49 + .i-tabler-external-link { 50 + --un-icon: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1.2em' height='1.2em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6m-7 1l9-9m-5 0h5v5'/%3E%3C/svg%3E"); 51 + -webkit-mask: var(--un-icon) no-repeat; 52 + mask: var(--un-icon) no-repeat; 53 + -webkit-mask-size: 100% 100%; 54 + mask-size: 100% 100%; 55 + background-color: currentColor; 56 + color: inherit; 57 + width: 1.2em; 58 + height: 1.2em; 59 + }