(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
98
fork

Configure Feed

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

add shelved feed type and remove min width from extension sidebar to ensure its good on all sizes

scanash00 8e147eb2 6d019a50

+25 -8
+19 -7
backend/internal/api/handler.go
··· 355 355 isSemble = true 356 356 } 357 357 358 - if feedType == "semble" && isSemble { 359 - filtered = append(filtered, item) 360 - } else if feedType == "margin" && !isSemble { 361 - filtered = append(filtered, item) 362 - } else if feedType == "popular" { 358 + switch feedType { 359 + case "semble": 360 + if isSemble { 361 + filtered = append(filtered, item) 362 + } 363 + case "margin": 364 + if !isSemble { 365 + filtered = append(filtered, item) 366 + } 367 + case "popular": 363 368 filtered = append(filtered, item) 369 + case "shelved": 370 + createdAt := getCreatedAt(item) 371 + popularity := getPopularity(item) 372 + if time.Since(createdAt) > 24*time.Hour && popularity == 0 { 373 + filtered = append(filtered, item) 374 + } 364 375 } 365 376 } 366 377 feed = filtered 367 378 } 368 379 369 - if feedType == "popular" { 380 + switch feedType { 381 + case "popular": 370 382 sortFeedByPopularity(feed) 371 - } else { 383 + default: 372 384 sortFeed(feed) 373 385 } 374 386
+4 -1
extension/src/assets/styles.css
··· 50 50 sans-serif; 51 51 margin: 0; 52 52 padding: 0; 53 - min-width: 320px; 54 53 max-width: 100%; 55 54 min-height: 100vh; 56 55 overflow: hidden; ··· 106 105 opacity: 0; 107 106 transform: translateY(-4px); 108 107 } 108 + 109 109 to { 110 110 opacity: 1; 111 111 transform: translateY(0); ··· 117 117 opacity: 0; 118 118 transform: translateY(8px); 119 119 } 120 + 120 121 to { 121 122 opacity: 1; 122 123 transform: translateY(0); ··· 128 129 opacity: 0; 129 130 transform: translateY(-8px); 130 131 } 132 + 131 133 to { 132 134 opacity: 1; 133 135 transform: translateY(0); ··· 139 141 100% { 140 142 opacity: 1; 141 143 } 144 + 142 145 50% { 143 146 opacity: 0.5; 144 147 }
+2
web/src/pages/Feed.jsx
··· 149 149 feedType === "popular" || 150 150 feedType === "semble" || 151 151 feedType === "margin" || 152 + feedType === "shelved" || 152 153 feedType === "my-feed" 153 154 ? filter === "all" 154 155 ? deduplicatedAnnotations ··· 203 204 {[ 204 205 { key: "all", label: "All" }, 205 206 { key: "popular", label: "Popular" }, 207 + { key: "shelved", label: "Shelved" }, 206 208 { key: "margin", label: "Margin" }, 207 209 { key: "semble", label: "Semble" }, 208 210 ...(user ? [{ key: "my-feed", label: "Mine" }] : []),