chore: style changes 70896a9a
Steve · 2026-04-18 10:54 3 file(s) · +44 −39
packages/client/src/App.tsx +33 −25
401 401
			</div>
402 402
403 403
			<div className="window-body" style={{ margin: 0, padding: "4px 6px" }}>
404 -
				{loading && <p style={{ textAlign: "center" }}>Searching...</p>}
404 +
				<div
405 +
					className="feed"
406 +
					style={{
407 +
						height: "70vh",
408 +
						overflowY: "auto",
409 +
						paddingRight: "5px",
410 +
					}}
411 +
				>
412 +
					{loading && (
413 +
						<p style={{ textAlign: "center", padding: "1rem" }}>
414 +
							Searching...
415 +
						</p>
416 +
					)}
405 417
406 -
				{error && (
407 -
					<div
408 -
						style={{
409 -
							padding: "10px",
410 -
							background: "#ffefef",
411 -
							border: "1px solid #ff0000",
412 -
						}}
413 -
					>
414 -
						<p>Error: {error}</p>
415 -
					</div>
416 -
				)}
418 +
					{error && (
419 +
						<div
420 +
							style={{
421 +
								padding: "10px",
422 +
								background: "#ffefef",
423 +
								border: "1px solid #ff0000",
424 +
							}}
425 +
						>
426 +
							<p>Error: {error}</p>
427 +
						</div>
428 +
					)}
417 429
418 -
				{!loading && !error && (
419 -
					<div
420 -
						className="feed"
421 -
						style={{
422 -
							maxHeight: "70vh",
423 -
							overflowY: "auto",
424 -
							paddingRight: "5px",
425 -
						}}
426 -
					>
430 +
					{!loading && !error && (
431 +
						<>
427 432
						<div
428 433
							style={{
429 434
								background: "#ffffff",
488 493
											target="_blank"
489 494
											rel="noreferrer"
490 495
										>
491 -
											ATProto
496 +
											atproto
492 497
										</a>
493 498
										, a new protocol to power connections across the web.
494 499
									</p>
528 533
											style={{
529 534
												width: "88px",
530 535
												height: "88px",
531 -
												objectFit: "scale-down",
536 +
												objectFit: "cover",
532 537
												border: "1px solid #d0d0d0",
533 538
											}}
534 539
										/>
583 588
												fontSize: "12px",
584 589
												color: "#666",
585 590
												lineHeight: "1.4",
591 +
												overflowWrap: "anywhere",
592 +
												wordBreak: "break-word",
586 593
											}}
587 594
										>
588 595
											{truncateText(getDescription(doc), 150)}
650 657
							</div>
651 658
						))}
652 659
						{documents.length === 0 && <p>No documents found.</p>}
653 -
					</div>
654 -
				)}
660 +
						</>
661 +
					)}
662 +
				</div>
655 663
			</div>
656 664
			<div className="status-bar">
657 665
				<p className="status-bar-field">Done</p>
packages/client/src/index.css +10 −2
1 1
body {
2 -
	background: url("./xp.jpg") no-repeat center center fixed;
3 -
	background-size: cover;
4 2
	min-height: 100vh;
3 +
	min-height: 100dvh;
5 4
	display: flex;
6 5
	align-items: center;
7 6
	justify-content: center;
13 12
	padding-right: max(20px, env(safe-area-inset-right));
14 13
	overflow: hidden;
15 14
	box-sizing: border-box;
15 +
}
16 +
17 +
body::before {
18 +
	content: "";
19 +
	position: fixed;
20 +
	inset: 0;
21 +
	background: url("./xp.jpg") no-repeat center center;
22 +
	background-size: cover;
23 +
	z-index: -1;
16 24
}
17 25
18 26
#root {
packages/server/src/routes/feed.ts +1 −12
45 45
		}
46 46
	}
47 47
48 -
	// Parse content if present
49 -
	let content: unknown | undefined;
50 -
	if (row.content) {
51 -
		try {
52 -
			content = JSON.parse(row.content);
53 -
		} catch {
54 -
			// Ignore parse errors
55 -
		}
56 -
	}
57 -
58 48
	return {
59 49
		uri: row.uri,
60 50
		did: row.did,
63 53
		description: row.description || undefined,
64 54
		path: row.path || undefined,
65 55
		site: row.site || undefined,
66 -
		content,
67 56
		textContent: row.text_content || undefined,
68 57
		coverImageCid: row.cover_image_cid || undefined,
69 58
		coverImageUrl: row.cover_image_url || undefined,
86 75
87 76
		const { results } = await db
88 77
			.prepare(
89 -
				`SELECT uri, did, rkey, title, description, path, site, content, text_content,
78 +
				`SELECT uri, did, rkey, title, description, path, site, text_content,
90 79
                cover_image_cid, cover_image_url, bsky_post_ref, tags,
91 80
                published_at, updated_at, pub_url, pub_name, pub_description,
92 81
                pub_icon_cid, pub_icon_url, view_url, pds_endpoint,