subaru-hello / Zeroken

一軒目に飲むお酒と飲む順番を提供するアプリ
5 stars 0 forks source link

カレンダーの日付をクリックしたら過去の酒ケジュールが表示されるようにしたい。 #86

Open subaru-hello opened 2 years ago

subaru-hello commented 2 years ago

30 が肥大化してきたので、issueを分けました。

概要

カレンダーの日付をクリックしたら過去の酒ケジュールが表示されるようにしたい。

期待する挙動

クリックした日付とcreated_atが同じデータをv-dialogで表示させたい。 Image from Gyazo

Image from Gyazo

表示したい項目

  1. お酒の強さ
  2. 飲んだお酒の順番
  3. タイトル

解決までのアプローチ

  1. 表示する項目を下記二つに分類する。←timestampの扱い方を理解する。
    • 30日以前に作成した酒ケジュール
    • 直近30日で作成した酒ケジュール
  2. クリックイベントが発火した時に上記二つが表示させるボタンを作成する。←クリックイベントが機能するか確かめる。
  3. 30日以前、ここ1ヶ月、直近7日までの三つに分けてみる。←種類を増やしても機能するか確かめる。
  4. クリックイベントをカレンダーに渡し、カレンダーの日付を押したらイベントが発火するようにする。←カレンダーの日付をクリックしたらちゃんとイベントが発火するか確かめる。
  5. カレンダーの日付と酒ケジュール作成日のtimestampをdayjsでフォーマットさせた後、双方を紐づける。
  6. 日付をクリックしたら紐づいた日にちの酒ケジュールが画面に表示されるようにする。←完成

下記記事、公式を参考にする。 https://vcalendar.io/ https://qiita.com/kanary/items/442bd44c2896a534768b https://docs.vcalendar.io/data.html

aiandrox commented 2 years ago

@subaru-hello クリックしたときは、 https://github.com/aiandrox/hashlog/blob/360616b37e4a2159eec198286ba0ad5bf2f16429/app/javascript/components/TheTagWrapper.vue#L193-L201 ここでRails側にリクエストを送って、返ってきたデータをtweetsに入れ替えているだけです! 例:https://hashlog.work/api/v1/registered_tags/314/tweets?page=1&date=2021-12-01

https://github.com/aiandrox/hashlog/blob/360616b37e4a2159eec198286ba0ad5bf2f16429/app/controllers/api/v1/tweets_controller.rb#L6-L9 コントローラ側はこんな感じです!

subaru-hello commented 2 years ago

@aiandrox ありがとうございます!!

  1. クリックしたら欲しいデータをgetするアクションを実行
  2. 1で取得したデータをPromiseを使ってtweetsに変換

までは理解できるのですが、Date.perseで日付を取得する流れをもう少し細かく聞いても良いでしょうか、、!

aiandrox commented 2 years ago

@subaru-hello 特になにもないときはhttps://hashlog.work/api/v1/registered_tags/314/tweets?page=1、日付で絞るときはhttps://hashlog.work/api/v1/registered_tags/314/tweets?page=1&date=2021-12-01って感じにしているので、params[:date] = 2021-12-01を取得して

[1] pry(main)> Date.parse('2021-12-01')
=> Wed, 01 Dec 2021

って感じです!

subaru-hello commented 2 years ago

@aiandrox クエリにある日付情報を取得してtweeted_atに引数として入れているんですね、、! 実装できるか試してみて、無理そうだったら違う方法で過去に作成した診断データを表示させようと思います!! アドバイスありがとうございました!!

aiandrox commented 2 years ago

ですです! Tweetクラスにスコープ定義してます!

ふぁいとっす!