An ATproto social media client -- with an independent Appview.
6
fork

Configure Feed

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

Enable image-only posts

+47 -30
+1 -1
src/view/com/composer/ComposePost.tsx
··· 117 117 return 118 118 } 119 119 setError('') 120 - if (text.trim().length === 0) { 120 + if (text.trim().length === 0 && selectedPhotos.length === 0) { 121 121 setError('Did you want to say anything?') 122 122 return false 123 123 }
+24 -15
src/view/com/post-thread/PostThreadItem.tsx
··· 159 159 </View> 160 160 </View> 161 161 <View style={[s.pl10, s.pr10, s.pb10]}> 162 - <View 163 - style={[styles.postTextContainer, styles.postTextLargeContainer]}> 164 - <RichText 165 - text={record.text} 166 - entities={record.entities} 167 - style={[styles.postText, styles.postTextLarge]} 168 - /> 169 - </View> 162 + {record.text ? ( 163 + <View 164 + style={[ 165 + styles.postTextContainer, 166 + styles.postTextLargeContainer, 167 + ]}> 168 + <RichText 169 + text={record.text} 170 + entities={record.entities} 171 + style={[styles.postText, styles.postTextLarge]} 172 + /> 173 + </View> 174 + ) : undefined} 170 175 <PostEmbeds embed={item.embed} style={s.mb10} /> 171 176 {item._isHighlightedPost && hasEngagement ? ( 172 177 <View style={styles.expandedInfo}> ··· 271 276 onCopyPostText={onCopyPostText} 272 277 onDeletePost={onDeletePost} 273 278 /> 274 - <View style={styles.postTextContainer}> 275 - <RichText 276 - text={record.text} 277 - entities={record.entities} 278 - style={[styles.postText]} 279 - /> 280 - </View> 279 + {record.text ? ( 280 + <View style={styles.postTextContainer}> 281 + <RichText 282 + text={record.text} 283 + entities={record.entities} 284 + style={[styles.postText]} 285 + /> 286 + </View> 287 + ) : ( 288 + <View style={{height: 5}} /> 289 + )} 281 290 <PostEmbeds embed={item.embed} style={{marginBottom: 10}} /> 282 291 <PostCtrls 283 292 replyCount={item.replyCount}
+11 -7
src/view/com/post/Post.tsx
··· 175 175 </Link> 176 176 </View> 177 177 )} 178 - <View style={styles.postTextContainer}> 179 - <RichText 180 - text={record.text} 181 - entities={record.entities} 182 - style={styles.postText} 183 - /> 184 - </View> 178 + {record.text ? ( 179 + <View style={styles.postTextContainer}> 180 + <RichText 181 + text={record.text} 182 + entities={record.entities} 183 + style={styles.postText} 184 + /> 185 + </View> 186 + ) : ( 187 + <View style={{height: 5}} /> 188 + )} 185 189 <PostEmbeds embed={item.embed} style={{marginBottom: 10}} /> 186 190 <PostCtrls 187 191 replyCount={item.replyCount}
+11 -7
src/view/com/posts/FeedItem.tsx
··· 187 187 </Link> 188 188 </View> 189 189 )} 190 - <View style={styles.postTextContainer}> 191 - <RichText 192 - text={record.text} 193 - entities={record.entities} 194 - style={styles.postText} 195 - /> 196 - </View> 190 + {record.text ? ( 191 + <View style={styles.postTextContainer}> 192 + <RichText 193 + text={record.text} 194 + entities={record.entities} 195 + style={styles.postText} 196 + /> 197 + </View> 198 + ) : ( 199 + <View style={{height: 5}} /> 200 + )} 197 201 <PostEmbeds embed={item.embed} style={styles.postEmbeds} /> 198 202 <PostCtrls 199 203 replyCount={item.replyCount}