mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 15:48:05 +00:00
Some checks failed
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (phone) (push) Has been cancelled
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (tv) (push) Has been cancelled
🤖 iOS IPA Build (Phone + TV) / 🏗️ Build iOS IPA (phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
🕒 Handle Stale Issues / 🗑️ Cleanup Stale Issues (push) Has been cancelled
This reverts commit ae09a59569.
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import React, { useState } from "react";
|
|
import {
|
|
Platform,
|
|
TextInput,
|
|
type TextInputProps,
|
|
TouchableOpacity,
|
|
} from "react-native";
|
|
|
|
interface InputProps extends TextInputProps {
|
|
extraClassName?: string; // new prop for additional classes
|
|
}
|
|
|
|
export function Input(props: InputProps) {
|
|
const { style, extraClassName = "", ...otherProps } = props;
|
|
const inputRef = React.useRef<TextInput>(null);
|
|
const [isFocused, setIsFocused] = useState(false);
|
|
|
|
return Platform.isTV ? (
|
|
<TouchableOpacity onFocus={() => inputRef?.current?.focus?.()}>
|
|
<TextInput
|
|
ref={inputRef}
|
|
className={`
|
|
w-full text-lg px-5 py-4 rounded-2xl
|
|
${isFocused ? "bg-neutral-700 border-2 border-white" : "bg-neutral-900 border-2 border-transparent"}
|
|
text-white ${extraClassName}
|
|
`}
|
|
allowFontScaling={false}
|
|
style={[
|
|
style,
|
|
{
|
|
backgroundColor: isFocused ? "#ffffff88" : "#8f8d8d88",
|
|
},
|
|
]}
|
|
placeholderTextColor={"#ffffffff"}
|
|
clearButtonMode='while-editing'
|
|
onFocus={() => setIsFocused(true)}
|
|
onBlur={() => setIsFocused(false)}
|
|
{...otherProps}
|
|
/>
|
|
</TouchableOpacity>
|
|
) : (
|
|
<TextInput
|
|
ref={inputRef}
|
|
className='p-4 rounded-xl bg-neutral-900'
|
|
allowFontScaling={false}
|
|
style={[{ color: "white" }, style]}
|
|
placeholderTextColor={"#9CA3AF"}
|
|
clearButtonMode='while-editing'
|
|
{...otherProps}
|
|
/>
|
|
);
|
|
}
|