Fix message input overlapping messages on mobile web
On mobile web, the DM conversation sets minimal shell mode to hide
the bottom tab bar. However, footerHeight (set by the bar's onLayout)
persisted at ~50px even after the bar was hidden. The animated
translateY on the message input pulled it up by footerHeight, but
the corresponding marginBottom on the List (a regular View, not
Animated.View) may not have updated, causing the input to overlap
the last visible messages.
Introduce effectiveFooterHeight via useDerivedValue that interpolates
footerHeight down to 0 as footerMode transitions to 1 (hidden). This
ensures both the list margin and input translation stay in sync and
resolve to 0 when the bar is hidden.