Skip to content

Commit c9cbd4d

Browse files
committed
remove ref forwarding on Minutes because it breaks for lessons
1 parent 21a92a5 commit c9cbd4d

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

modules/app/Minutes.js

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import React, { useState, forwardRef } from 'react'
2-
import { format as formatDate } from 'date-fns'
3-
import { FaMinus, FaPlus } from 'react-icons/fa'
1+
import React, { useState } from "react"
2+
import { format as formatDate } from "date-fns"
3+
import { FaMinus, FaPlus } from "react-icons/fa"
44

5-
export default forwardRef(function Minutes({ date }, ref) {
5+
export default function Minutes({ date }) {
66
const [minutes, setMinutes] = useState(30)
77

88
const subtract = () => {
@@ -17,7 +17,7 @@ export default forwardRef(function Minutes({ date }, ref) {
1717

1818
const handleInputChange = event => {
1919
const value = event.target.value
20-
const specialCaseEmpty = value.trim() === ''
20+
const specialCaseEmpty = value.trim() === ""
2121
if (specialCaseEmpty) {
2222
// allow them to delete all characters
2323
setMinutes(value)
@@ -31,17 +31,17 @@ export default forwardRef(function Minutes({ date }, ref) {
3131
}
3232

3333
const handleInputBlur = event => {
34-
if (event.target.value.trim() === '') {
34+
if (event.target.value.trim() === "") {
3535
setMinutes(0)
3636
}
3737
}
3838

3939
const handleInputKeyDown = event => {
4040
// preventDefault to keep cursor from going back/forth
41-
if (event.key === 'ArrowUp') {
41+
if (event.key === "ArrowUp") {
4242
event.preventDefault()
4343
add()
44-
} else if (event.key === 'ArrowDown') {
44+
} else if (event.key === "ArrowDown") {
4545
event.preventDefault()
4646
subtract()
4747
}
@@ -65,7 +65,6 @@ export default forwardRef(function Minutes({ date }, ref) {
6565
onChange={handleInputChange}
6666
onBlur={handleInputBlur}
6767
onKeyDown={handleInputKeyDown}
68-
ref={ref}
6968
/>
7069
<div>
7170
<button
@@ -77,8 +76,8 @@ export default forwardRef(function Minutes({ date }, ref) {
7776
</button>
7877
</div>
7978
<label className="Minutes_label" htmlFor="minutes">
80-
Mins on {formatDate(date, 'MMM Do')}
79+
Mins on {formatDate(date, "MMM Do")}
8180
</label>
8281
</div>
8382
)
84-
})
83+
}

modules/app/NewPost.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ export default function NewPost({ takeFocus, date, onSuccess, showAvatar }) {
1717
)
1818
const [saving, setSaving] = useState(false)
1919
const formRef = useRef()
20-
const minutesRef = useRef()
2120
const messageRef = useRef()
2221

2322
useEffect(() => {
@@ -41,7 +40,10 @@ export default function NewPost({ takeFocus, date, onSuccess, showAvatar }) {
4140
// eslint-disable-next-line
4241
createPost({
4342
message: messageRef.current.value,
44-
minutes: parseInt(minutesRef.current.value, 10),
43+
// We specifically want to avoid refs for Minutes because it would
44+
// require ref forwarding and not all Minutes components (lectures)
45+
// will use ref forwarding (because they don't need it)
46+
minutes: parseInt(event.target.elements[3].value, 10),
4547
date: formatDate(date, DATE_FORMAT),
4648
uid: auth.uid
4749
}).then(post => {
@@ -53,12 +55,12 @@ export default function NewPost({ takeFocus, date, onSuccess, showAvatar }) {
5355

5456
const handleSubmit = event => {
5557
event.preventDefault()
56-
submit()
58+
submit(event)
5759
}
5860

5961
const handleMessageKeyDown = event => {
6062
if (event.metaKey && event.key === "Enter") {
61-
submit()
63+
submit(event)
6264
}
6365
}
6466

@@ -86,7 +88,7 @@ export default function NewPost({ takeFocus, date, onSuccess, showAvatar }) {
8688
</div>
8789
<RecentPostsDropdown uid={auth.uid} onSelect={handleRecentSelect} />
8890
<div className="NewPost_buttons">
89-
<Minutes date={date} ref={minutesRef} />
91+
<Minutes date={date} />
9092
<div>
9193
<button disabled={saving} type="submit" className="icon_button cta">
9294
<FaDumbbell /> <span>Post</span>

0 commit comments

Comments
 (0)