atproto explorer
0
fork

Configure Feed

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

fixes and tweaks

Juliet 0f78fd4b a6cea034

+84 -84
+2 -2
package.json
··· 13 13 "prettier-plugin-tailwindcss": "^0.6.11", 14 14 "typescript": "^5.7.3", 15 15 "unocss": "^66.0.0", 16 - "vite": "^6.1.0", 17 - "vite-plugin-solid": "^2.11.1", 16 + "vite": "^6.1.1", 17 + "vite-plugin-solid": "^2.11.2", 18 18 "vite-plugin-wasm": "^3.4.1" 19 19 }, 20 20 "dependencies": {
+41 -41
pnpm-lock.yaml
··· 53 53 version: 5.7.3 54 54 unocss: 55 55 specifier: ^66.0.0 56 - version: 66.0.0(postcss@8.5.2)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 56 + version: 66.0.0(postcss@8.5.3)(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 57 57 vite: 58 - specifier: ^6.1.0 59 - version: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 58 + specifier: ^6.1.1 59 + version: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 60 60 vite-plugin-solid: 61 - specifier: ^2.11.1 62 - version: 2.11.1(solid-js@1.9.4)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 61 + specifier: ^2.11.2 62 + version: 2.11.2(solid-js@1.9.4)(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 63 63 vite-plugin-wasm: 64 64 specifier: ^3.4.1 65 - version: 3.4.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 65 + version: 3.4.1(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 66 66 67 67 packages: 68 68 ··· 1001 1001 pkg-types@1.3.1: 1002 1002 resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1003 1003 1004 - postcss@8.5.2: 1005 - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} 1004 + postcss@8.5.3: 1005 + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1006 1006 engines: {node: ^10 || ^12 || >=14} 1007 1007 1008 1008 prettier-plugin-tailwindcss@0.6.11: ··· 1114 1114 tinyexec@0.3.2: 1115 1115 resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1116 1116 1117 - tinyglobby@0.2.11: 1118 - resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} 1117 + tinyglobby@0.2.12: 1118 + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} 1119 1119 engines: {node: '>=12.0.0'} 1120 1120 1121 1121 to-regex-range@5.0.1: ··· 1170 1170 validate-html-nesting@1.2.2: 1171 1171 resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} 1172 1172 1173 - vite-plugin-solid@2.11.1: 1174 - resolution: {integrity: sha512-X9vbbK6AOOA6yxSsNl1VTuUq5y4BG9AR6Z5F/J1ZC2VO7ll8DlSCbOL+RcZXlRbxn0ptE6OI5832nGQhq4yXKQ==} 1173 + vite-plugin-solid@2.11.2: 1174 + resolution: {integrity: sha512-/OXVasW5OIRSFXnqzMgm8X3hPvf+JTbGecjQhmk7QnbDFq4hqdLssuYAWw9GsJGfzUPiMHM3ME2Y2XHPsTWmkw==} 1175 1175 peerDependencies: 1176 1176 '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 1177 1177 solid-js: ^1.7.2 ··· 1185 1185 peerDependencies: 1186 1186 vite: ^2 || ^3 || ^4 || ^5 || ^6 1187 1187 1188 - vite@6.1.0: 1189 - resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} 1188 + vite@6.1.1: 1189 + resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} 1190 1190 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1191 1191 hasBin: true 1192 1192 peerDependencies: ··· 1680 1680 undici-types: 6.20.0 1681 1681 optional: true 1682 1682 1683 - '@unocss/astro@66.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))': 1683 + '@unocss/astro@66.0.0(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))': 1684 1684 dependencies: 1685 1685 '@unocss/core': 66.0.0 1686 1686 '@unocss/reset': 66.0.0 1687 - '@unocss/vite': 66.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 1687 + '@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 1688 1688 optionalDependencies: 1689 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 1689 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 1690 1690 transitivePeerDependencies: 1691 1691 - vue 1692 1692 ··· 1703 1703 magic-string: 0.30.17 1704 1704 pathe: 2.0.3 1705 1705 perfect-debounce: 1.0.0 1706 - tinyglobby: 0.2.11 1706 + tinyglobby: 0.2.12 1707 1707 unplugin-utils: 0.2.4 1708 1708 1709 1709 '@unocss/config@66.0.0': ··· 1728 1728 transitivePeerDependencies: 1729 1729 - vue 1730 1730 1731 - '@unocss/postcss@66.0.0(postcss@8.5.2)': 1731 + '@unocss/postcss@66.0.0(postcss@8.5.3)': 1732 1732 dependencies: 1733 1733 '@unocss/config': 66.0.0 1734 1734 '@unocss/core': 66.0.0 1735 1735 '@unocss/rule-utils': 66.0.0 1736 1736 css-tree: 3.1.0 1737 - postcss: 8.5.2 1738 - tinyglobby: 0.2.11 1737 + postcss: 8.5.3 1738 + tinyglobby: 0.2.12 1739 1739 1740 1740 '@unocss/preset-attributify@66.0.0': 1741 1741 dependencies: ··· 1811 1811 dependencies: 1812 1812 '@unocss/core': 66.0.0 1813 1813 1814 - '@unocss/vite@66.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))': 1814 + '@unocss/vite@66.0.0(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3))': 1815 1815 dependencies: 1816 1816 '@ampproject/remapping': 2.3.0 1817 1817 '@unocss/config': 66.0.0 ··· 1819 1819 '@unocss/inspector': 66.0.0(vue@3.5.13(typescript@5.7.3)) 1820 1820 chokidar: 3.6.0 1821 1821 magic-string: 0.30.17 1822 - tinyglobby: 0.2.11 1822 + tinyglobby: 0.2.12 1823 1823 unplugin-utils: 0.2.4 1824 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 1824 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 1825 1825 transitivePeerDependencies: 1826 1826 - vue 1827 1827 ··· 1847 1847 '@vue/shared': 3.5.13 1848 1848 estree-walker: 2.0.2 1849 1849 magic-string: 0.30.17 1850 - postcss: 8.5.2 1850 + postcss: 8.5.3 1851 1851 source-map-js: 1.2.1 1852 1852 1853 1853 '@vue/compiler-ssr@3.5.13': ··· 2145 2145 mlly: 1.7.4 2146 2146 pathe: 2.0.3 2147 2147 2148 - postcss@8.5.2: 2148 + postcss@8.5.3: 2149 2149 dependencies: 2150 2150 nanoid: 3.3.8 2151 2151 picocolors: 1.1.1 ··· 2224 2224 2225 2225 tinyexec@0.3.2: {} 2226 2226 2227 - tinyglobby@0.2.11: 2227 + tinyglobby@0.2.12: 2228 2228 dependencies: 2229 2229 fdir: 6.4.3(picomatch@4.0.2) 2230 2230 picomatch: 4.0.2 ··· 2256 2256 undici-types@6.20.0: 2257 2257 optional: true 2258 2258 2259 - unocss@66.0.0(postcss@8.5.2)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)): 2259 + unocss@66.0.0(postcss@8.5.3)(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)): 2260 2260 dependencies: 2261 - '@unocss/astro': 66.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 2261 + '@unocss/astro': 66.0.0(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 2262 2262 '@unocss/cli': 66.0.0 2263 2263 '@unocss/core': 66.0.0 2264 - '@unocss/postcss': 66.0.0(postcss@8.5.2) 2264 + '@unocss/postcss': 66.0.0(postcss@8.5.3) 2265 2265 '@unocss/preset-attributify': 66.0.0 2266 2266 '@unocss/preset-icons': 66.0.0 2267 2267 '@unocss/preset-mini': 66.0.0 ··· 2275 2275 '@unocss/transformer-compile-class': 66.0.0 2276 2276 '@unocss/transformer-directives': 66.0.0 2277 2277 '@unocss/transformer-variant-group': 66.0.0 2278 - '@unocss/vite': 66.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 2278 + '@unocss/vite': 66.0.0(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2))(vue@3.5.13(typescript@5.7.3)) 2279 2279 optionalDependencies: 2280 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2280 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2281 2281 transitivePeerDependencies: 2282 2282 - postcss 2283 2283 - supports-color ··· 2296 2296 2297 2297 validate-html-nesting@1.2.2: {} 2298 2298 2299 - vite-plugin-solid@2.11.1(solid-js@1.9.4)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2299 + vite-plugin-solid@2.11.2(solid-js@1.9.4)(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2300 2300 dependencies: 2301 2301 '@babel/core': 7.26.9 2302 2302 '@types/babel__core': 7.20.5 ··· 2304 2304 merge-anything: 5.1.7 2305 2305 solid-js: 1.9.4 2306 2306 solid-refresh: 0.6.3(solid-js@1.9.4) 2307 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2308 - vitefu: 1.0.5(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 2307 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2308 + vitefu: 1.0.5(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)) 2309 2309 transitivePeerDependencies: 2310 2310 - supports-color 2311 2311 2312 - vite-plugin-wasm@3.4.1(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2312 + vite-plugin-wasm@3.4.1(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2313 2313 dependencies: 2314 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2314 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2315 2315 2316 - vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2): 2316 + vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2): 2317 2317 dependencies: 2318 2318 esbuild: 0.24.2 2319 - postcss: 8.5.2 2319 + postcss: 8.5.3 2320 2320 rollup: 4.34.8 2321 2321 optionalDependencies: 2322 2322 '@types/node': 22.13.1 ··· 2324 2324 jiti: 2.4.2 2325 2325 tsx: 4.19.2 2326 2326 2327 - vitefu@1.0.5(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2327 + vitefu@1.0.5(vite@6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2)): 2328 2328 optionalDependencies: 2329 - vite: 6.1.0(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2329 + vite: 6.1.1(@types/node@22.13.1)(jiti@2.4.2)(tsx@4.19.2) 2330 2330 2331 2331 vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.7.3)): 2332 2332 dependencies:
+1 -1
src/components/create.tsx
··· 154 154 type="submit" 155 155 class="rounded-lg bg-green-500 px-2.5 py-1.5 text-sm font-bold text-slate-100 hover:bg-green-400 focus:outline-none focus:ring-1 focus:ring-slate-700 dark:bg-green-600 dark:hover:bg-green-500 dark:focus:ring-slate-300" 156 156 > 157 - Confirm 157 + Create 158 158 </button> 159 159 </div> 160 160 </div>
+38
src/utils/templates.ts
··· 1 + export type AtUri = { repo: string; collection: string; rkey: string }; 2 + type TemplateFn = (uri: AtUri) => { label: string; link: string }; 3 + type TemplateMap = Record<string, TemplateFn>; 4 + 5 + export const uriTemplates: TemplateMap = { 6 + "app.bsky.actor.profile": (uri) => ({ 7 + label: "Bluesky", 8 + link: `https://bsky.app/profile/${uri.repo}`, 9 + }), 10 + "app.bsky.feed.post": (uri) => ({ 11 + label: "Bluesky", 12 + link: `https://bsky.app/profile/${uri.repo}/post/${uri.rkey}`, 13 + }), 14 + "app.bsky.graph.list": (uri) => ({ 15 + label: "Bluesky", 16 + link: `https://bsky.app/profile/${uri.repo}/lists/${uri.rkey}`, 17 + }), 18 + "app.bsky.feed.generator": (uri) => ({ 19 + label: "Bluesky", 20 + link: `https://bsky.app/profile/${uri.repo}/feed/${uri.rkey}`, 21 + }), 22 + "fyi.unravel.frontpage.post": (uri) => ({ 23 + label: "Frontpage", 24 + link: `https://frontpage.fyi/post/${uri.repo}/${uri.rkey}`, 25 + }), 26 + "com.whtwnd.blog.entry": (uri) => ({ 27 + label: "WhiteWind", 28 + link: `https://whtwnd.com/${uri.repo}/${uri.rkey}`, 29 + }), 30 + "com.shinolabs.pinksea.oekaki": (uri) => ({ 31 + label: "PinkSea", 32 + link: `https://pinksea.art/${uri.repo}/oekaki/${uri.rkey}`, 33 + }), 34 + "blue.linkat.board": (uri) => ({ 35 + label: "Linkat", 36 + link: `https://linkat.blue/${uri.repo}`, 37 + }), 38 + };
+2 -40
src/views/record.tsx
··· 10 10 import { setCID, setValidRecord, validRecord } from "../components/navbar.jsx"; 11 11 import { didDocCache, resolveHandle, resolvePDS } from "../utils/api.js"; 12 12 import { theme } from "../layout.jsx"; 13 + import { AtUri, uriTemplates } from "../utils/templates.js"; 13 14 14 15 const RecordView = () => { 15 16 const params = useParams(); ··· 143 144 setEditNotice(""); 144 145 }); 145 146 146 - type AtUri = { repo: string; collection: string; rkey: string }; 147 - type TemplateFn = (uri: AtUri) => { label: string; link: string }; 148 - type TemplateMap = Record<string, TemplateFn>; 149 - 150 - const uriTemplates: TemplateMap = { 151 - "app.bsky.actor.profile": (uri) => ({ 152 - label: "Bluesky", 153 - link: `https://bsky.app/profile/${uri.repo}`, 154 - }), 155 - "app.bsky.feed.post": (uri) => ({ 156 - label: "Bluesky", 157 - link: `https://bsky.app/profile/${uri.repo}/post/${uri.rkey}`, 158 - }), 159 - "app.bsky.graph.list": (uri) => ({ 160 - label: "Bluesky", 161 - link: `https://bsky.app/profile/${uri.repo}/lists/${uri.rkey}`, 162 - }), 163 - "app.bsky.feed.generator": (uri) => ({ 164 - label: "Bluesky", 165 - link: `https://bsky.app/profile/${uri.repo}/feed/${uri.rkey}`, 166 - }), 167 - "fyi.unravel.frontpage.post": (uri) => ({ 168 - label: "Frontpage", 169 - link: `https://frontpage.fyi/post/${uri.repo}/${uri.rkey}`, 170 - }), 171 - "com.whtwnd.blog.entry": (uri) => ({ 172 - label: "WhiteWind", 173 - link: `https://whtwnd.com/${uri.repo}/${uri.rkey}`, 174 - }), 175 - "com.shinolabs.pinksea.oekaki": (uri) => ({ 176 - label: "PinkSea", 177 - link: `https://pinksea.art/${uri.repo}/oekaki/${uri.rkey}`, 178 - }), 179 - "blue.linkat.board": (uri) => ({ 180 - label: "Linkat", 181 - link: `https://linkat.blue/${uri.repo}`, 182 - }), 183 - }; 184 - 185 147 const checkUri = (uri: string) => { 186 148 const uriParts = uri.split("/"); // expected: ["at:", "", "repo", "collection", "rkey"] 187 149 if (uriParts.length != 5) return undefined; ··· 274 236 type="submit" 275 237 class="rounded-lg bg-green-500 px-2.5 py-1.5 text-sm font-bold text-slate-100 hover:bg-green-400 focus:outline-none focus:ring-1 focus:ring-slate-700 dark:bg-green-600 dark:hover:bg-green-500 dark:focus:ring-slate-300" 276 238 > 277 - Confirm 239 + Edit 278 240 </button> 279 241 </div> 280 242 </div>