https://pawapro-gen.netlify.com/
web1week - パワプロ風画面ジェネレータを作ってみた
時間的に残りの機能間に合わないかと思っていたので、最低限動く機能で出したのですが、結論から言うと間に合いました。
当初はフォームとプレビュー機能を分けて作っていたのですが、
ほとんど全てインラインで編集できるように変更しました。
以前slack流量計を作った際に、web表彰のスクリーンショットを撮っていたので、OGP作成にはそれほど抵抗はありませんでした。
あとはだらさんの作成されてるOGPサーバを参考にさせていただきました。
アプリ起動時componentDidMount
のタイミングでUUIDを生成するようにしました。
react-shareというライブラリを使い、
beforeOnClick
メソッドでDBへの登録を行っています。
ローディング画面も作りました(同時にバグ生成)。
<TwitterShareButton
url={'https://pawapro-gen.netlify.com/view/'+store.getState().uuid}
hashtags={['パワプロ風画面ジェネレータで作ってみた']}
beforeOnClick={async()=>{
store.dispatch(switchLoading(true));
let isSuccess = await postData();
store.dispatch(switchLoading(false));
if(!isSuccess){
alert('データの保存に失敗しました。時間を空けるか、リロードして再度作成してください。')
return new Error();
}else{
return Promise.resolve();
}
}}
>
保存してシェアする!
</TwitterShareButton>
ヘッダでキャッシュコントロールしたことがなかったので若干はまりました。
twitterやFacebookでOGPの上下左右がトリミングされる問題があり、
Jimpなどで余白の拡張をしようと思ったのですが、時間がなかったこともあり、
React側でマージンをとってスクリーンショットを撮る際に余白ができるように修正しました。
OGPの生成で手一杯だったので、base64化してDBに格納するところまで考えられませんでした。後々追加する予定。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント