Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
4a15df8
convert mobile chat thread from FlatList (inverted) to LegendList (al…
chrisnojima Mar 17, 2026
72d1d6f
fix bottom padding between thread list and input area
chrisnojima Mar 17, 2026
620614e
remove forceListRedraw; enable recycleItems
chrisnojima Mar 17, 2026
726a33b
lower estimatedItemSize 72→44 to fix container pool exhaustion warning
chrisnojima Mar 17, 2026
e32fba3
add DEV logging for item size changes and suggested estimatedItemSize
chrisnojima Mar 17, 2026
457f6e7
track async item size changes in DEV; remove estimatedItemSize
chrisnojima Mar 17, 2026
8c9dbfd
initial legends list
chrisnojima Mar 17, 2026
759126d
fix sep
chrisnojima Mar 17, 2026
5d76a5f
cleaner scrolling
chrisnojima Mar 17, 2026
8171b69
WIP
chrisnojima Mar 17, 2026
67dae00
move avatar/header from separator into message wrapper
chrisnojima-zoom Mar 17, 2026
1cf2682
fix: fullWidth on wrapper Box2 so mobile messages fill list width
chrisnojima-zoom Mar 17, 2026
e3e8710
WIP
chrisnojima Mar 17, 2026
e1f3382
WIP
chrisnojima-zoom Mar 18, 2026
6c3a25d
WIP
chrisnojima Mar 18, 2026
d891b4a
WIP
chrisnojima Mar 18, 2026
0bcb93f
WIP
chrisnojima Mar 18, 2026
33931dd
use legend keyboard wrapper
chrisnojima Mar 18, 2026
05e7d4f
WIP
chrisnojima Mar 18, 2026
599a08b
WIP
chrisnojima Mar 18, 2026
6ce3c43
WIP
chrisnojima Mar 18, 2026
b7c133e
WIP
chrisnojima Mar 18, 2026
054246d
fix scroll jump when loading older messages via stable anchor sentinel
chrisnojima-zoom Mar 18, 2026
f86a0f6
lighter weight special. use top instead for maintaining position better
chrisnojima-zoom Mar 19, 2026
721870b
dont show top in initial load
chrisnojima-zoom Mar 19, 2026
2d14df6
less subs
chrisnojima-zoom Mar 19, 2026
0445dfb
wip
chrisnojima-zoom Mar 19, 2026
f7ac2e1
try desktop also
chrisnojima-zoom Mar 19, 2026
dbbc63f
lint
chrisnojima-zoom Mar 19, 2026
2982b86
WIP
chrisnojima Mar 19, 2026
d83a85e
WIP
chrisnojima Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- No DOM elements (`<div>`, `<span>`, etc.) in plain `.tsx` files — use `Kb.*`. Guard desktop-only DOM with `Styles.isMobile`.
- Temp files go in `/tmp/`.
- Remove unused code when editing: styles, imports, vars, params, dead helpers.
- Comments: no refactoring notes; only add when context isn't obvious from code.
- Comments: no refactoring notes, no "we changed X" history; only add when context isn't obvious from code.
- Exact versions in `package.json` (no `^`/`~`).
- Keep `react`, `react-dom`, `react-native`, `@react-native/*` in sync with Expo SDK.
- When updating deps: edit `package.json` → `yarn` → `yarn pod-install`.
Expand Down
4 changes: 2 additions & 2 deletions shared/.maestro/performance/perf-thread-scroll.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ appId: keybase.ios
- swipe:
id: 'messageList'
direction: DOWN
duration: 400
waitToSettleTimeoutMs: 50
duration: 50
waitToSettleTimeoutMs: 1

# Press Home to trigger app background → flushes profiler data
- pressKey: Home
2 changes: 1 addition & 1 deletion shared/chat/conversation/input-area/normal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ const styles = Kb.Styles.styleSheetCreate(() => {
const suggestDesktop = {marginLeft: 15, marginRight: 15, marginTop: 'auto'}
return {
container: Kb.Styles.platformStyles({
isMobile: {justifyContent: 'flex-end'},
isMobile: {backgroundColor: Kb.Styles.globalColors.white, justifyContent: 'flex-end'},
}),
suggestionOverlay: Kb.Styles.platformStyles({
isElectron: suggestDesktop,
Expand Down
15 changes: 10 additions & 5 deletions shared/chat/conversation/input-area/normal/input.native.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import type {Props as InputLowLevelProps, PlatformInputProps as Props, TextInfo,
import {AudioSendWrapper} from '@/chat/audio/audio-send.native'
import {Keyboard, TextInput, type NativeSyntheticEvent, type TextInputSelectionChangeEventData, useColorScheme} from 'react-native'
import {MaxInputAreaContext} from './max-input-area-context'
import {useAnimatedKeyboard} from 'react-native-keyboard-controller'
import {
default as Animated,
skipAnimations,
Expand Down Expand Up @@ -431,11 +432,15 @@ const AnimatedInput = (() => {
const {expanded, inputRef, ...rest} = p
const lastExpandedRef = React.useRef(expanded)
const offset = useSharedValue(expanded ? 1 : 0)
const maxHeight = maxInputArea - inputAreaHeight - 15
const as = useAnimatedStyle(() => ({
maxHeight: withTiming(offset.value ? maxHeight : threeLineHeight),
minHeight: withTiming(offset.value ? maxHeight : singleLineHeight),
}))
const keyboard = useAnimatedKeyboard()
const maxHeightBase = maxInputArea - inputAreaHeight - 15
const as = useAnimatedStyle(() => {
const maxHeight = maxHeightBase - keyboard.height.value
return {
maxHeight: withTiming(offset.value ? maxHeight : threeLineHeight),
minHeight: withTiming(offset.value ? maxHeight : singleLineHeight),
}
})
React.useEffect(() => {
if (expanded !== lastExpandedRef.current) {
lastExpandedRef.current = expanded
Expand Down
Loading