split-free.openapps.xyz

Source

This app’s code and revision history are public. Download a copy or explore the files below.

Public
The app’s code and revision history are public.
Owned app · rev 9ed962174401
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone 20ace674a35b849ffda63b30
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
← All files
src/Skeleton.tsx
// The group page's shape while it loads, so nothing jumps when the data arrives.
export function GroupSkeleton() {
  return (
    <div className="group" aria-busy="true" aria-label="Opening the group">
      <header className="group-head">
        <div className="wrap group-head-inner">
          <div className="group-title-block">
            <span className="skeleton skeleton-title" />
            <span className="skeleton skeleton-text" style={{ width: 180 }} />
          </div>
        </div>
      </header>
      <div className="wrap group-body">
        <div className="card you"><span className="skeleton" style={{ height: 64, width: "100%" }} /></div>
        <div className="group-grid">
          <div className="expense-list">
            {[0, 1, 2, 3].map((i) => (
              <div className="expense" key={i}>
                <span className="skeleton" style={{ width: 40, height: 40, borderRadius: 10 }} />
                <span><span className="skeleton skeleton-text" style={{ width: "60%" }} /><span className="skeleton skeleton-text" style={{ width: "35%" }} /></span>
                <span className="skeleton skeleton-text" style={{ width: 64 }} />
              </div>
            ))}
          </div>
          <div className="card balance-card skeleton-aside"><span className="skeleton" style={{ height: 180 }} /></div>
        </div>
      </div>
    </div>
  );
}

Change history

Publish quality pass from owner chat
9ed9621744 · 6 hours ago
Bind agent address in policy constants
7effc1cbbd · 6 hours ago
Quality pass: cleaner group page, phone polish, fuller API, sourced comparison
5345219781 · 6 hours ago
Bounded source sync
277fb9ad96 · 1 day ago
Bounded source sync
e944552325 · 1 day ago