-
Notifications
You must be signed in to change notification settings - Fork 71
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
base: main
Are you sure you want to change the base?
checkStampを非Vue化した #8194
Conversation
221ca41
to
0d010c2
Compare
@Ryooo-k ご都合合わなければ遠慮なくおっしゃってください🙏 |
@mousu-a |
There was a problem hiding this 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
show
とis-hidden
を入れている理由がわからなかったので教えてください🙇
(show
とis-hidden
を削除しても正常に動作したので気になりました。)
There was a problem hiding this comment.
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
は自分でも理由がわかりませんでした😅 消しました!
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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>
現状だとユーザー名が下よりになっています。
変更すると中央に揃います。
app/javascript/check-stamp.js
Outdated
|
||
checkStampElement.classList.remove('is-hidden') | ||
|
||
const checkedUserName = document.querySelector('.is-user-name') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらが正しいと思いますがいかがでしょうか?👀
(こちらのコメントをご確認ください。)
const checkedUserName = document.querySelector('.is-user-name') | |
const checkedUserName = document.querySelector('.stamp__content-inner') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ご指摘の通りこれだとHTMLが変わってしまっていました💦
修正しました!
app/javascript/check-stamp.js
Outdated
if (!json[0]) return checkStampElement.classList.add('is-hidden') | ||
|
||
checkStampElement.classList.remove('is-hidden') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
toggle()メソッドを使うと1行で書けそうです!
if (!json[0]) return checkStampElement.classList.add('is-hidden') | |
checkStampElement.classList.remove('is-hidden') | |
checkStampElement.classList.toggle('is-hidden', !json[0]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
第二引数の存在を知りませんでした。。ありがとうございます🙏
toggleでコードを一行に、その後未チェックであればreturnするように変更しました!
@Ryooo-k |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mousu-a
修正ありがとうございます✨
確認しました!OKです🙆
app/javascript/checkable.js
Outdated
@@ -1,3 +1,5 @@ | |||
import setChecks from 'check-stamp.js' |
There was a problem hiding this comment.
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で出来てるのは無視して、今わかりやすいように作っていただいて大丈夫です。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
すみません、外からわかりやすくという視点が抜けていました😢
名前付きエクスポートにし、setCheckStamp
で統一しました!
beb140e
There was a problem hiding this comment.
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に使う名前だと思います)
3bd24a3
to
9a5cc64
Compare
@@ -12,6 +12,10 @@ export const setCheckStamp = () => { | |||
|
|||
const checkableType = checkStamp.getAttribute('data-checkable-type') | |||
const checkableId = checkStamp.getAttribute('data-checkable-id') | |||
store.dispatch('setCheckable', { |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mousu-a 上の方にしただけだと、もうちょっとPCが遅いだけでテストが落ちる不安定な状態かもなので、テストの方で待つ処理(他の場所でも使ってるuntilを使った構文)を入れる方が良いと思います。
Issue
概要
提出物のshowページ、日報のshowページのチェックスタンプを非Vue化しました。
変更確認方法
chore/check-stamp-non-vue-conversion
をローカルに取り込むgit fetch origin chore/check-stamp-non-vue-conversion
git checkout chore/check-stamp-non-vue-conversion
komagata
でログインする(メンターであれば誰でも良いです)(提出物では3,4の確認だけで大丈夫です)
Screenshot