0
0
Fork 0
This commit is contained in:
xeltica 2021-09-07 20:50:09 +09:00
parent d94f2c91fb
commit 17a12d127c
5 changed files with 78 additions and 50 deletions

View file

@ -1,4 +1,4 @@
import React, { useEffect, useReducer } from 'react';
import React, { useEffect, useMemo, useReducer } from 'react';
import { AlertMode } from '../../common/types/alert-mode';
import { IUser } from '../../common/types/user';
import { Visibility } from '../../common/types/visibility';
@ -42,52 +42,63 @@ export const SettingPage: React.VFC = () => {
}
}, [session.data]);
const saveButton = useMemo(() => (
<button className="btn primary" style={{alignSelf: 'flex-end'}}>
</button>
), []);
return session.isLoading || !data ? (
<div className="skeleton" style={{width: '100%', height: '128px'}}></div>
) : (
<div className="vstack">
<div>
<label htmlFor="alertMode" className="input-field"></label>
<select name="alertMode" className="input-field" value={draft.alertMode} onChange={(e) => {
dispatchDraft({ alertMode: e.target.value as AlertMode });
}}>
<option value="note">稿</option>
<option value="notification">Misskeyに通知()</option>
<option value="nothing"></option>
</select>
{draft.alertMode === 'notification' && (
<div className="alert bg-danger mt-2">
<i className="icon bi bi-exclamation-circle"></i>
Misskey Misskeyでは動作しません
<div className="vstack fade">
<div className="card">
<div className="body vstack">
<h1></h1>
<div>
<select name="alertMode" className="input-field" value={draft.alertMode} onChange={(e) => {
dispatchDraft({ alertMode: e.target.value as AlertMode });
}}>
<option value="note">稿</option>
<option value="notification">Misskeyに通知()</option>
<option value="nothing"></option>
</select>
{draft.alertMode === 'notification' && (
<div className="alert bg-danger mt-2">
<i className="icon bi bi-exclamation-circle"></i>
Misskey Misskeyでは動作しません
</div>
)}
</div>
)}
</div>
{ draft.alertMode === 'note' && (
<div>
<label htmlFor="visibility" className="input-field"></label>
<select name="visibility" className="input-field" value={draft.visibility} onChange={(e) => {
dispatchDraft({ visibility: e.target.value as Visibility });
}}>
<option value="public"></option>
<option value="home"></option>
<option value="followers"></option>
</select>
<label className="input-switch mt-2">
<input type="checkbox" />
<div className="switch"></div>
<span></span>
</label>
{ draft.alertMode === 'note' && (
<div>
<label htmlFor="visibility" className="input-field"></label>
<select name="visibility" className="input-field" value={draft.visibility} onChange={(e) => {
dispatchDraft({ visibility: e.target.value as Visibility });
}}>
<option value="public"></option>
<option value="home"></option>
<option value="followers"></option>
</select>
<label className="input-switch mt-2">
<input type="checkbox" />
<div className="switch"></div>
<span></span>
</label>
</div>
)}
{saveButton}
</div>
</div>
<div className="card">
<div className="body vstack">
<h1></h1>
<textarea className="input-field" value={draft.template ?? defaultTemplate} style={{height: 228}} onChange={(e) => {
dispatchDraft({ template: e.target.value });
}} />
{saveButton}
</div>
)}
<div>
<label htmlFor="template" className="input-field"></label>
<textarea className="input-field" value={draft.template ?? defaultTemplate} style={{height: 256}} onChange={(e) => {
dispatchDraft({ template: e.target.value });
}} />
</div>
<button className="btn primary">
</button>
</div>
);
};