alpha
Login
or
Join now
h14h.com
/
glide
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Effortlessly glide through your todos
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
glide
/
src
/
design
/
at
main
1 folder
16 files
h14h.com
Fix Android buttons staying untappable after becoming enabled
4d ago
4b9b26ca
streak
Add day-clear streak profile
2 weeks ago
account-avatar.tsx
Fix Android buttons staying untappable after becoming enabled PopButton computed `blocked = disabled || loading`. With `disabled={false}` and no `loading` prop, that yields `undefined` rather than `false`. `blocked` feeds `accessibilityState={{ disabled: blocked }}`, and RN's BaseViewManager.setViewState only touches the native enabled flag when the key is present: if (accessibilityState.hasKey("disabled")) { view.setEnabled(!accessibilityState.getBoolean("disabled")); } An undefined value is dropped in prop serialization, so hasKey is false and setEnabled(true) never runs. The view stayed enabled=false from its initial mount, and a disabled Android View discards touches before they reach JS, so onPress never fired. Most visible on the new task sheet: "Add" mounts disabled (empty field), so after typing it looked enabled but only the keyboard's enter key worked -- onSubmitEditing fires on the TextInput and bypasses the button. iOS has no equivalent disabled-view touch behaviour and was unaffected. Fixed at the PopButton seam so every call site is covered. Verified on an Android emulator: the a11y tree goes from [clickable,disabled] to [clickable], and repeated add cycles work. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 days ago
actioning-screen.tsx
Simplify Next Up interactions
4 days ago
auth-screen.tsx
Map shared symbols on Android
1 month ago
create-task.tsx
Add Glide Sync subscription paywall and RevenueCat integration Local-first stays free; a subscription gates Convex multi-device sync. - Paywall flow (plan -> real Clerk auth -> payment) in paywall-screen.tsx + route src/app/paywall.tsx, registered in _layout. - Header Sync entry / account button driven by real Clerk auth (sync-status.tsx); export AccountButton for reuse. - Grace / billing-retry notices on the Action screen and a local-only caption on New Task, plus an empty-state placement fix. - react-native-purchases wired via src/data/sync/revenuecat.tsx (<RevenueCatBridge/>): env-driven key, Purchases.logIn(clerkUserId), `sync` entitlement -> subscription state; Subscribe -> purchasePackage, with a dev stub fallback (entitlement.ts). - Docs: docs/engineering/subscriptions.md (+ README index, local-first link). react-native-purchases is native, so this needs a fresh dev build; payment and entitlement stay test-only until a RevenueCat Test Store key is set. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 weeks ago
glass-bar.tsx
Add branded Clerk auth and account flows
1 month ago
glide-field.tsx
Map shared symbols on Android
1 month ago
legal-screen.tsx
Prepare Glide for App Store submission
2 weeks ago
paywall-screen.tsx
Give sandbox free Sync: signing in is the entitlement EXPO_PUBLIC_FREE_SYNC=1 (preview env only; production builds refuse it) turns the paywall into a plain sign-up/sign-in flow and maps signed-in to subscribed via FreeSyncBridge. Server-side, SANDBOX_GRANT_ALL=1 on the glide-sandbox deployment grants any authenticated identity read-write sync before the RevenueCat cache is consulted — that env var is the real gate and must never be set on production. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 days ago
planning-screen.tsx
Add day-clear streak profile
2 weeks ago
pop-button.tsx
Fix Android buttons staying untappable after becoming enabled PopButton computed `blocked = disabled || loading`. With `disabled={false}` and no `loading` prop, that yields `undefined` rather than `false`. `blocked` feeds `accessibilityState={{ disabled: blocked }}`, and RN's BaseViewManager.setViewState only touches the native enabled flag when the key is present: if (accessibilityState.hasKey("disabled")) { view.setEnabled(!accessibilityState.getBoolean("disabled")); } An undefined value is dropped in prop serialization, so hasKey is false and setEnabled(true) never runs. The view stayed enabled=false from its initial mount, and a disabled Android View discards touches before they reach JS, so onPress never fired. Most visible on the new task sheet: "Add" mounts disabled (empty field), so after typing it looked enabled but only the keyboard's enter key worked -- onSubmitEditing fires on the TextInput and bypasses the button. iOS has no equivalent disabled-view touch behaviour and was unaffected. Fixed at the PopButton seam so every call site is covered. Verified on an Android emulator: the a11y tree goes from [clickable,disabled] to [clickable], and repeated add cycles work. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4 days ago
profile-screen.tsx
Give sandbox free Sync: signing in is the entitlement EXPO_PUBLIC_FREE_SYNC=1 (preview env only; production builds refuse it) turns the paywall into a plain sign-up/sign-in flow and maps signed-in to subscribed via FreeSyncBridge. Server-side, SANDBOX_GRANT_ALL=1 on the glide-sandbox deployment grants any authenticated identity read-write sync before the RevenueCat cache is consulted — that env var is the real gate and must never be set on production. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
5 days ago
shared.ts
Restructure Glide around an actioning-first flow Replace the two-tab shell (Now deck + Signals dashboard) with a single actioning surface plus on-demand planning and capture: - Actioning (home): a NOW hero card + NEXT UP list, with a Done action that completes tasks and a bottom bar to plan or capture. - Planning (full-screen modal): pass-scoped swipe deck — each open task is considered once per session; resisting softens it for the next pass. Adds a directional color wash on drag and button-triggered fly-off. - Capture (sheet): title-only; resistance is discovered through the loop. Backend: add createTask + complete mutations, simplify assess and the starter seed, and relax the now-unused context/minutes/lane fields to optional. Strip the Signals/lanes domain code. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 month ago
symbols.ts
Simplify Next Up interactions
4 days ago
sync-status.tsx
Add day-clear streak profile
2 weeks ago
use-action-list.ts
Simplify Next Up interactions
4 days ago
use-decision-engine.ts
Add day-clear streak profile
2 weeks ago