diff --git a/resources/assets/js/checkin.tsx b/resources/assets/js/checkin.tsx index 23ce902..80b5a88 100644 --- a/resources/assets/js/checkin.tsx +++ b/resources/assets/js/checkin.tsx @@ -3,4 +3,4 @@ import * as ReactDOM from 'react-dom'; import { CheckinForm } from './components/CheckinForm'; const initialState = JSON.parse(document.getElementById('initialState')?.textContent as string); -ReactDOM.render(, document.getElementById('checkinForm')); +ReactDOM.render(, document.getElementById('checkinForm')); diff --git a/resources/assets/js/components/CheckBox.tsx b/resources/assets/js/components/CheckBox.tsx new file mode 100644 index 0000000..30a7226 --- /dev/null +++ b/resources/assets/js/components/CheckBox.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; + +type CheckboxProps = { + id: string; + name: string; + className?: string; + checked?: boolean; + onChange?: (newValue: boolean) => void; +}; + +export const CheckBox: React.FC = ({ id, name, className, checked, onChange, children }) => ( +
+ onChange && onChange(e.target.checked)} + /> + +
+); diff --git a/resources/assets/js/components/CheckinForm.tsx b/resources/assets/js/components/CheckinForm.tsx index 5931869..442b436 100644 --- a/resources/assets/js/components/CheckinForm.tsx +++ b/resources/assets/js/components/CheckinForm.tsx @@ -1,49 +1,12 @@ import * as React from 'react'; import { useState } from 'react'; import * as classNames from 'classnames'; +import { CheckBox } from './CheckBox'; +import { FieldError, StandaloneFieldError } from './FieldError'; import { TagInput } from './TagInput'; import { MetadataPreview } from './MetadataPreview'; -type CheckboxProps = { - id: string; - name: string; - className?: string; - checked?: boolean; - onChange?: (newValue: boolean) => void; -}; - -const Checkbox: React.FC = ({ id, name, className, checked, onChange, children }) => ( -
- onChange && onChange(e.target.checked)} - /> - -
-); - -type FieldErrorProps = { - errors?: string[]; -}; - -const FieldError: React.FC = ({ errors }) => - (errors && errors.length > 0 &&
{errors[0]}
) || null; - -const StandaloneFieldError: React.FC = ({ errors }) => - (errors && errors.length > 0 && ( -
- {errors[0]} -
- )) || - null; - -export type CheckinFormProps = { +type CheckinFormProps = { initialState: any; }; @@ -157,7 +120,7 @@ export const CheckinForm: React.FC = ({ initialState }) => {

オプション

- = ({ initialState }) => { onChange={(v) => setPrivate(v)} > このチェックインを非公開にする - - + = ({ initialState }) => { onChange={(v) => setTooSensitive(v)} > チェックイン対象のオカズをより過激なオカズとして設定する - +
diff --git a/resources/assets/js/components/FieldError.tsx b/resources/assets/js/components/FieldError.tsx new file mode 100644 index 0000000..61ec77e --- /dev/null +++ b/resources/assets/js/components/FieldError.tsx @@ -0,0 +1,16 @@ +import * as React from 'react'; + +type FieldErrorProps = { + errors?: string[]; +}; + +export const FieldError: React.FC = ({ errors }) => + (errors && errors.length > 0 &&
{errors[0]}
) || null; + +export const StandaloneFieldError: React.FC = ({ errors }) => + (errors && errors.length > 0 && ( +
+ {errors[0]} +
+ )) || + null;