feat(tv): add glass poster module and refactor grid layouts

This commit is contained in:
Fredrik Burmester
2026-01-25 17:02:10 +01:00
parent 2c6938c739
commit c2d61654b0
21 changed files with 980 additions and 130 deletions

View File

@@ -0,0 +1,36 @@
import { NativeModule, requireNativeModule } from "expo";
import { Platform } from "react-native";
import type { GlassPosterModuleEvents } from "./GlassPoster.types";
declare class GlassPosterModuleType extends NativeModule<GlassPosterModuleEvents> {
isGlassEffectAvailable(): boolean;
}
// Only load the native module on tvOS
let GlassPosterNativeModule: GlassPosterModuleType | null = null;
if (Platform.OS === "ios" && Platform.isTV) {
try {
GlassPosterNativeModule =
requireNativeModule<GlassPosterModuleType>("GlassPoster");
} catch {
// Module not available, will use fallback
}
}
/**
* Check if the native glass effect is available (tvOS 26+)
*/
export function isGlassEffectAvailable(): boolean {
if (!GlassPosterNativeModule) {
return false;
}
try {
return GlassPosterNativeModule.isGlassEffectAvailable();
} catch {
return false;
}
}
export default GlassPosterNativeModule;