import { Button } from '@/components/ui/button'; import { Link } from '@inertiajs/react'; import { Check, CircleX } from 'lucide-react'; import { ReactNode } from 'react'; import Layout from './Partials/Layout'; import StepNavigator from './Partials/StepNavigator'; interface Props { allValuesAreTrue: boolean; requirements: Record; } const Step1 = (props: Props) => { const { allValuesAreTrue, requirements } = props; const statusList = [ { title: `PHP >= ${requirements.required_php_version}`, key: 'php_version', }, { title: 'OpenSSL PHP Extension', key: 'openssl_enabled' }, { title: 'PDO PHP Extension', key: 'pdo_enabled' }, { title: 'Mbstring PHP Extension', key: 'mbstring_enabled' }, { title: 'Curl PHP Extension', key: 'curl_enabled' }, { title: 'Tokenizer PHP Extension', key: 'tokenizer_enabled' }, { title: 'XML PHP Extension', key: 'xml_enabled' }, { title: 'CTYPE PHP Extension', key: 'ctype_enabled' }, { title: 'Fileinfo PHP Extension', key: 'fileinfo_enabled' }, { title: 'GD PHP Extension', key: 'gd_enabled' }, { title: 'JSON PHP Extension', key: 'json_enabled' }, { title: 'BCmath PHP Extension', key: 'bcmath_enabled' }, { title: 'Symlink Function', key: 'symlink_enabled' }, ]; return ( <> {!allValuesAreTrue &&

Your server doesn't meet the following requirements

}
{statusList.map(({ key, title }) => (
{title} {key === 'php_version' ? (
{requirements.current_php_version} {requirements[key] ? : }
) : requirements[key] ? ( ) : ( )}
))}
{!allValuesAreTrue && (

Important Notes

  • Symlink Function: Required for Laravel's storage:link command to make uploaded files publicly accessible
  • PHP Extensions: These extensions are essential for Laravel to function properly
  • Contact your hosting provider if any requirements are not met
)} {allValuesAreTrue && (
)} ); }; Step1.layout = (page: ReactNode) => ; export default Step1;