Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

checkStampを非Vue化した #8194

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

mousu-a
Copy link
Contributor

@mousu-a mousu-a commented Nov 14, 2024

Issue

概要

提出物のshowページ、日報のshowページのチェックスタンプを非Vue化しました。

変更確認方法

  1. chore/check-stamp-non-vue-conversionをローカルに取り込む
    1. git fetch origin chore/check-stamp-non-vue-conversion
    2. git checkout chore/check-stamp-non-vue-conversion
  2. komagataでログインする(メンターであれば誰でも良いです)
  3. 日報一覧画面にて適当な日報を選び、"日報を確認"ボタンを押して右上にチェックスタンプが表示されることを確認する
  4. "日報の確認を取り消す"ボタンを押してチェックスタンプが消えることを確認する
  5. 日報を確認していない状態でコメントをしようとするとアラートが表示されることを確認する
  6. 確認した状態では表示されないことを確認する
  7. 提出物一覧画面にて適当な提出物を選び、上記手順と同じように確認する。
    (提出物では3,4の確認だけで大丈夫です)

Screenshot

  • 提出物showページのチェックスタンプ
image * 日報showページのチェックスタンプ image

@mousu-a mousu-a force-pushed the chore/check-stamp-non-vue-conversion branch from 221ca41 to 0d010c2 Compare November 18, 2024 02:15
@mousu-a mousu-a self-assigned this Nov 18, 2024
@mousu-a
Copy link
Contributor Author

mousu-a commented Nov 19, 2024

@Ryooo-k
お疲れ様です!
お手すきの際にこちらレビューをお願い出来ますでしょうか🙏
全く急ぎではないです!

ご都合合わなければ遠慮なくおっしゃってください🙏
よろしくお願いいたします🙇

@Ryooo-k
Copy link
Contributor

Ryooo-k commented Nov 19, 2024

@mousu-a
レビューさせていただきます👍
終わりましたら改めてご連絡いたします。(1週間以内を目処に)

@mousu-a mousu-a requested a review from Ryooo-k November 19, 2024 03:58
@mousu-a mousu-a marked this pull request as ready for review November 19, 2024 03:59
Copy link
Contributor

@Ryooo-k Ryooo-k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mousu-a
コメントしました!
ご確認お願いいたします。

@@ -0,0 +1,6 @@
.stamp.stamp-approve.show.is-hidden
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

showis-hiddenを入れている理由がわからなかったので教えてください🙇
showis-hiddenを削除しても正常に動作したので気になりました。)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

質問ありがとうございます!!

is-hiddenに関しては、まずはチェックスタンプを非表示にしておかないと画面のロード時に一瞬空のチェックスタンプが表示されてしまうのでつけています!
(デフォルト(HTML読み込み時)ではスタンプは見えない状態に、読み込み後のJSでチェックが確認できれば見える状態にする という流れにしたい感じです)

すみません、showは自分でも理由がわかりませんでした😅 消しました!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど!教えていただきありがとうございます!勉強になりました✨

| 確認済
time.stamp__content.is-created-at
.stamp__content.is-user-name
.stamp__content-inner
Copy link
Contributor

@Ryooo-k Ryooo-k Nov 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

現状のコードから生成されるHTMLは、

<div class="stamp stamp-approve show">
  <h2 class="stamp__content is-title">確認済</h2>
  <time class="stamp__content is-created-at">2024/11/20</time>
  <div class="stamp__content is-user-name">komagata</div>
</div>

となりますが変更前のファイルを見る限り、下記のHTMLを生成するコードが正しいのではないかと思いました。

<div class="stamp stamp-approve show">
  <h2 class="stamp__content is-title">確認済</h2>
  <time class="stamp__content is-created-at">2024/11/20</time>
  <div class="stamp__content is-user-name">
    <div class="stamp__content-inner">komagata</div>
  </div>
</div>

現状だとユーザー名が下よりになっています。

スクリーンショット 2024-11-19 16 33 24

変更すると中央に揃います。

スクリーンショット 2024-11-19 16 33 06


checkStampElement.classList.remove('is-hidden')

const checkedUserName = document.querySelector('.is-user-name')
Copy link
Contributor

@Ryooo-k Ryooo-k Nov 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらが正しいと思いますがいかがでしょうか?👀
(こちらのコメントをご確認ください。)

Suggested change
const checkedUserName = document.querySelector('.is-user-name')
const checkedUserName = document.querySelector('.stamp__content-inner')

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ご指摘の通りこれだとHTMLが変わってしまっていました💦
修正しました!

Comment on lines 32 to 34
if (!json[0]) return checkStampElement.classList.add('is-hidden')

checkStampElement.classList.remove('is-hidden')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

toggle()メソッドを使うと1行で書けそうです!

Suggested change
if (!json[0]) return checkStampElement.classList.add('is-hidden')
checkStampElement.classList.remove('is-hidden')
checkStampElement.classList.toggle('is-hidden', !json[0])

Copy link
Contributor Author

@mousu-a mousu-a Nov 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

第二引数の存在を知りませんでした。。ありがとうございます🙏
toggleでコードを一行に、その後未チェックであればreturnするように変更しました!

@mousu-a
Copy link
Contributor Author

mousu-a commented Nov 20, 2024

@Ryooo-k
お疲れ様です!
レビューありがとうございます!!
修正しましたので再度ご確認のほどお願いいたします🙇‍♂️

Copy link
Contributor

@Ryooo-k Ryooo-k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mousu-a
修正ありがとうございます✨
確認しました!OKです🙆

@mousu-a
Copy link
Contributor Author

mousu-a commented Nov 21, 2024

@Ryooo-k
レビューありがとうございました〜!

@komagata
チームメンバーから確認いただけましたのでこちらレビューをお願いいたします🙇‍♂️

@mousu-a mousu-a requested a review from komagata November 21, 2024 03:13
@@ -1,3 +1,5 @@
import setChecks from 'check-stamp.js'
Copy link
Member

@komagata komagata Nov 22, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mousu-a 外部から使われるモジュールとしてわかりやすい設計・ネーミングにした方がいいように思いました。
default exportだとするとcheckStampとかのそのままの名前で使えた方がいいように思いました。
既存の作りはvueで出来てるのは無視して、今わかりやすいように作っていただいて大丈夫です。

Copy link
Contributor Author

@mousu-a mousu-a Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

すみません、外からわかりやすくという視点が抜けていました😢
名前付きエクスポートにし、setCheckStampで統一しました!
beb140e

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mousu-a すみません、僕の書き方がわかりづらかったですね。
setXXXというネーミングが気になる点です。(setはReactでは別の意味で使いますが、基本的にオブジェクト指向のsetterに使う名前だと思います)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

すみません、setter、getterのことを完全に失念していました😢
修正しました!
631c532

@mousu-a mousu-a force-pushed the chore/check-stamp-non-vue-conversion branch from 3bd24a3 to 9a5cc64 Compare November 25, 2024 13:07
@@ -12,6 +12,10 @@ export const setCheckStamp = () => {

const checkableType = checkStamp.getAttribute('data-checkable-type')
const checkableId = checkStamp.getAttribute('data-checkable-id')
store.dispatch('setCheckable', {
Copy link
Contributor Author

@mousu-a mousu-a Nov 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この処理(store.jsのcheckIdのセット)が遅いと、commentsテスト(日報にコメントをする処理のあるテスト)でコメントをする時に、日報をチェック済みかどうか?の確認(store.jsのcheckIdのセット)がコメントをするタイミングに間に合わず、日報がチェック済みであるにも関わらずアラートが出てしまうことがあります。それによりテストが落ちやすくなっていたため、コードを上に移動させました。
日報を確認済みにしていませんがよろしいですか?
9a5cc64

Copy link
Member

@komagata komagata Nov 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mousu-a 上の方にしただけだと、もうちょっとPCが遅いだけでテストが落ちる不安定な状態かもなので、テストの方で待つ処理(他の場所でも使ってるuntilを使った構文)を入れる方が良いと思います。

Copy link
Contributor Author

@mousu-a mousu-a Dec 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

落ちやすいテストに待つコードを追加しました。
10回中1回もテストが落ちないくらいになりました。
6b34eb9

until文も考えたんですが、冗長になってしまう気がしたのでfindのみとしました🙇‍♂️

# 実装したコード
   within('.page-content-header') do
      find('.stamp.stamp-approve')
    end

# 考えたuntil文
 Timeout.timeout(Capybara.default_max_wait_time, StandardError) do
      stamp = find('.page-content-header').find('.stamp__content.is-created-at', visible: false)
      next until stamp.text == checks(:report1_check_machida).created_at.strftime('%Y/%m/%d')
    end

@mousu-a mousu-a force-pushed the chore/check-stamp-non-vue-conversion branch from 9a5cc64 to 6b34eb9 Compare December 3, 2024 00:19
@mousu-a
Copy link
Contributor Author

mousu-a commented Dec 3, 2024

@komagata
修正しましたので再度レビューをお願いいたします🙇‍♂️

})

const DisplayCheckStamp = () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Display〜という名前はこのサイトの他の箇所で使われていないと思います。
他の箇所の似た処理がどういう設計・名前になっているか確認してみて参考にしてみてください〜。

Copy link
Contributor Author

@mousu-a mousu-a Dec 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

loadingCheckStampとしました!
f6ebd3d

他にはhandleCheckStamp handleCheckStampDisplay switchCheckStampDisplay など考えました。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

loadingは名詞なのでload〜とかloaded〜じゃないとおかしいかも?

Copy link
Contributor Author

@mousu-a mousu-a Jan 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

loadCheckStampに変更しました!
15070cb

@mousu-a mousu-a force-pushed the chore/check-stamp-non-vue-conversion branch from 6b34eb9 to f6ebd3d Compare December 21, 2024 14:48
@mousu-a
Copy link
Contributor Author

mousu-a commented Dec 21, 2024

@komagata
こちら修正しましたので再度レビューをお願いいたします🙇‍♂️

@mousu-a
Copy link
Contributor Author

mousu-a commented Jan 14, 2025

@komagata
修正しました!
再度レビューをお願いいたします🙇‍♂️

@mousu-a mousu-a force-pushed the chore/check-stamp-non-vue-conversion branch from 15070cb to 3fa7df3 Compare January 17, 2025 04:13
@mousu-a
Copy link
Contributor Author

mousu-a commented Jan 20, 2025

mainのrebaseもしました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants