bsky-app/bskyweb
dan f015229acf
New Web Layout (#2126)
* Rip out virtualization on the web

* Screw around with layout

* onEndReached

* scrollToOffset

* Fix background

* onScroll

* Shell bars

* More scroll

* Fixes

* position: sticky

* Clean up 1

* Clean up 2

* Undo PagerWithHeader changes and fork it

* Trim down both versions

* Cleanup 3

* Memoize, lint

* Don't scroll away modal or lightbox

* Add content-visibility for rows

* Fix composer

* Fix types

* Fix borked scroll animation

* Fixes to layout

* More FlatList parity

* Layout fixes

* Fix more layout

* More layout

* More layouts

* Fix profile layout

* Remove onScroll

* Display: none inactive pages

* Add an intermediate List component

* Fix type

* Add onScrolledDownChange

* Port pager to use onScrolledDownChange

* Fix on mobile

* Don't pass down onScroll (replacement TBD)

* Remove resetMainScroll

* Replace onMainScroll with MainScrollProvider

* Hook ScrollProvider to pager

* Fix the remaining special case

* Optimize a bit

* Enforce that onScroll cannot be passed

* Keep value updated even if no handler

* Also memo it

* Move the fork to List.web

* Add scroll handler

* Consolidate List props a bit

* More stuff

* Rm unused

* Simplify

* Make isScrolledDown work

* Oops

* Fixes

* Hook up context scroll handlers

* Scroll restore for tabs

* Route scroll restoration POC

* Fix some issues with restoration

* Remove bad idea

* Fix pager scroll restoration

* Undo accidental locale changes

* onContentSizeChange

* Scroll to post

* Better positioning

* Layout fixes

* Factor out navigation stuff

* Cleanup

* Oops

* Cleanup

* Fixes and types

* Naming etc

* Fix crash

* Match FL semantics

* Snap the header scroll on the web

* Add body scroll lock

* Scroll to top on search

* Fix types

* Typos

* Fix Safari overflow

* Fix search positioning

* Add border

* Patch react navigation

* Revert "Patch react navigation"

This reverts commit 62516ed9c20410d166e1582b43b656c819495ddc.

* fixes

* scroll

* scrollbar

* cleanup unrelated

* undo unrel

* flatter

* Fix css

* twk
2024-01-22 14:46:32 -08:00
..
cmd/bskyweb rss: filter out replies server-side (#2518) 2024-01-15 13:13:15 -08:00
static Update some brand assets (#2301) 2023-12-24 14:32:23 -08:00
templates New Web Layout (#2126) 2024-01-22 14:46:32 -08:00
.gitignore Updates indigo golang packages post-lex-refactor (!), which fixes XRPC calls (#582) 2023-05-04 13:56:17 -05:00
Makefile bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227) 2023-12-18 19:31:48 +04:00
README.md update golang to v1.21; set GOEXPERIMENT=loopvar (#1256) 2023-08-28 19:35:23 -07:00
example.dev.env bskyweb: switch from PDS backend to AppView backend (#1065) 2023-08-24 16:00:45 -07:00
example.env bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227) 2023-12-18 19:31:48 +04:00
go.mod bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227) 2023-12-18 19:31:48 +04:00
go.sum bskyweb: update golang indigo dep (from May!), and some small devex tweaks (#2227) 2023-12-18 19:31:48 +04:00
static.go bskyweb additions (#296) 2023-03-20 14:41:15 -07:00
templates.go bskyweb additions (#296) 2023-03-20 14:41:15 -07:00

README.md

Build / Develop

SPA Bundle (monolithic static javascript file)

To build the SPA bundle (bundle.web.js), first get a JavaScript development environment set up. Either follow the top-level README, or something quick like:

# install nodejs 18 (specifically)
nvm install 18
nvm use 18
npm install --global yarn

# setup tools and deps (in top level of this repo)
yarn install --frozen-lockfile

# run yarn web dev server, if you wanted
yarn web

Then build and copy over the big 'ol bundle.web.js file:

# in the top level of this repo
yarn build-web

Golang Daemon

Install golang. We are generally using v1.21+.

In this directory (bskyweb/):

# re-build and run daemon
go run ./cmd/bskyweb serve

# build and output a binary
go build -o bskyweb ./cmd/bskyweb/

The easiest way to configure the daemon is to copy example.env to .env and fill in auth values there.