Selectable table cells each installed a window-level gesture recognizer, causing every touch to fan out across the entire table. Keep prose selectable while rendering iOS table text without selection.
18 lines
625 B
TypeScript
18 lines
625 B
TypeScript
import { createContext, type ReactNode, useContext } from "react";
|
|
|
|
export type MarkdownTextSurface = "prose" | "table-cell";
|
|
|
|
const MarkdownTextSurfaceContext = createContext<MarkdownTextSurface>("prose");
|
|
|
|
export function MarkdownTableCellText({ children }: { children: ReactNode }) {
|
|
return <MarkdownTextSurfaceContext value="table-cell">{children}</MarkdownTextSurfaceContext>;
|
|
}
|
|
|
|
export function useMarkdownTextSurface(): MarkdownTextSurface {
|
|
return useContext(MarkdownTextSurfaceContext);
|
|
}
|
|
|
|
export function iosMarkdownTextIsSelectable(surface: MarkdownTextSurface): boolean {
|
|
return surface !== "table-cell";
|
|
}
|