Set standard height as iframe default height, validate form

This commit is contained in:
manubo
2019-09-30 22:18:43 +02:00
parent a8156226c2
commit f3484d3bfa
4 changed files with 12 additions and 12 deletions

View File

@@ -13,8 +13,6 @@ html {
#moco-bx-root {
min-width: 516px;
min-height: 420px;
transition: height 2s ease-out;
h1 {
font-size: 24px;

View File

@@ -110,7 +110,7 @@ class App extends Component {
componentDidMount() {
window.addEventListener("keydown", this.handleKeyDown)
parent.postMessage(window.document.body.scrollHeight, "*")
parent.postMessage({ __mocoBX: { iFrameHeight: window.document.body.scrollHeight } }, "*")
chrome.runtime.onMessage.addListener(this.handleSetFormErrors)
}

View File

@@ -1,7 +1,6 @@
import React, { Component } from "react"
import PropTypes from "prop-types"
import Select from "components/Select"
import TimeInputParser from "utils/TimeInputParser"
import { formatDate } from "utils"
import cn from "classnames"
import stopWatch from "images/icons/stopwatch-light.svg"
@@ -39,15 +38,18 @@ class Form extends Component {
isValid() {
const { changeset } = this.props
return ["assignment_id", "task_id"].map(prop => changeset[prop]).every(Boolean)
return (
["assignment_id", "task_id"].map(prop => changeset[prop]).every(Boolean) &&
(changeset.date === formatDate(new Date()) || changeset.seconds > 0)
)
}
get isTimerStartable() {
const {
changeset: { hours, date },
changeset: { seconds, date },
} = this.props
const duration = new TimeInputParser(hours).parseSeconds()
return date === formatDate(new Date()) && duration === 0
return date === formatDate(new Date()) && seconds === 0
}
buttonStyle() {

View File

@@ -13,8 +13,8 @@ const Popup = forwardRef((props, ref) => {
}
const handleMessage = event => {
if (iFrameRef.current) {
iFrameRef.current.style.height = `${event.data}px`
if (iFrameRef.current && event.data?.__mocoBX?.iFrameHeight > 300) {
iFrameRef.current.style.height = `${event.data.__mocoBX.iFrameHeight}px`
}
}
@@ -50,11 +50,11 @@ const Popup = forwardRef((props, ref) => {
return (
<div ref={ref} className="moco-bx-popup" onClick={handleRequestClose}>
<div className="moco-bx-popup-content" style={{ width: "516px", minHeight: "420px" }}>
<div className="moco-bx-popup-content" style={{ width: "516px" }}>
<iframe
ref={iFrameRef}
src={chrome.extension.getURL(`popup.html?${queryString.stringify(serializedProps)}`)}
width="516px"
style={{ width: "516px", height: "576px", transition: "height 0.1s ease-in-out" }}
/>
</div>
</div>