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 8 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
チームメンバーから確認いただけましたのでこちらレビューをお願いいたします🙇‍♂️

@@ -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に使う名前だと思います)

@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を使った構文)を入れる方が良いと思います。

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