---
# System prepended metadata

title: 変えたいかも.js

---

# 変えたいかも.js
## mixinの整理
- 特定のコンポーネント用のものがある
- cascaderとか
- コンポーネントに持たせればいいんじゃない？
- mixinでやってることをコンポーネントにもたせて用途にあった名前をつける
    - job-selectorとかがそれ
- masterからプロパティを取り出すメソッドはmixinで共通化してもいいかも
- utils/getMediaStatusLabel.js
    ```
    import MEDIA_STATUSES from '~/constants/mediaStatuses'

    function getMediaStatusLabel(master, { media_id_selfie, media_name_cards }) {
      const statuses = [media_id_selfie.status, media_name_cards.status]
      // 両方承認済みなら, 承認済みとする.
      if (statuses.every(status => status === MEDIA_STATUSES.APPROVED)) {
        return master.media_statuses.approved
        // 片方でも Declined なら, 否決済みで表示.
      } else if (statuses.some(status => status === MEDIA_STATUSES.DECLINED)) {
        return master.media_statuses.declined
        // 画像アップロードが完了かつ、確定済みのときは、審査中.
      } else if (
        statuses.every(status => status && status !== MEDIA_STATUSES.UPLOADED)
      ) {
        return master.media_statuses.pending
        // どれにも一致しなかったら、未完了.
      } else {
        return 'アップロード未完了'
      }
    }

    export default getMediaStatusLabel

    ```
- こういうやつはmixinでthis.masterなりを参照してもいいかも
- mixinにmapStateできるならしちゃったほうがmaster関連のデータ取り回しが散らからない&&「このプロパティはmasterのこのプロパティで、参照の仕方はこうで…」みたいな知らなくてもいいやつに気を取られなくなるかなと

## フォーム部品をもうちょい抽象化したい
- 同じような処理を記述する回数が多い気がする
- job-selectorみたいなやつを作って脳死で使えるようにしたい
    - 職種選択はこのコンポーネントね！で済むやつ
    - 前のmixinの話とつながるやつ

## テーブル用データの整形処理をstoreから剥がして関数にしたい
- store経由しなくていいように
- 候補者の一覧表示とかが候補者一覧ページ以外でも使ったりするから
- transformerをもたせて


## ボタンのルールを決めてそれに則った使い方をしたい
- 黒、黒枠、ブランドカラーとあるけども、明確な使い分けの規則がないような気がする
- 決定はこの色、遷移するときはこの色、キャンセル動作はこれ、みたいな役割ベースで使い分けしたい
    - 統一感
    - ユーザの認知負荷軽減てきなアレ
- 位置
    - 一覧の下なのか右上なのか
    - 追加するときは下とかそういうアレ
    
## ボタンのラベルが「~する」とかになってるのはなぜ
- するつける必要なくない？
    
## adminサイドバー表示したままでよくない？
- 開いて開いてクリックの３クリック無駄じゃない？
- 管理画面なんだからメニュー常に表示して全部開いた状態でもよさそうな気がする