| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- import React from 'react';
- import { withTranslation } from 'react-i18next';
- import { createSubscribedElement } from './UnstatedUtils';
- import AppContainer from '../services/AppContainer';
- import PageContainer from '../services/PageContainer';
- import loggerFactory from '@alias/logger';
- const logger = loggerFactory('growi:app');
- class ShareLinkForm extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- isGoing: true,
- numberOfGuests: 1,
- text: ' ',
- };
- this.handleInputChange = this.handleInputChange.bind(this);
- this.handleChange = this.handleChange.bind(this);
- this.handleSubmit = this.handleSubmit.bind(this);
- }
- handleInputChange(event) {
- const target = event.target;
- const value = target.name === 'isGoing' ? target.checked : target.value;
- const name = target.name;
- this.setState({
- [name]: value
- });
- console.log(event.target.value);
- console.log(event.target.checked);
- console.log( event.target.name );
- console.log( event.target.type );
- console.log( event.target.id );
- }
- handleChange(event) {
- this.setState({ text: event.target.value });
- console.log(event.target.value);
- }
- handleSubmit(event) {
- event.preventDefault();
- console.log('発行する!');
- }
- render() {
- return (
- <div className="share-link-form border">
- <h4 className="ml-3">Expiration Date</h4>
- <form onSubmit={this.handleSubmit}>
- <div className="form-group">
- <div className="custom-control custom-radio offset-4 mb-2">
- <input
- type="radio"
- className="custom-control-input"
- id="customRadio1"
- name="isGoing"
- value="customRadio1"
- checked={this.state.isGoing}
- onChange={this.handleInputChange}
- />
- <label className="custom-control-label" htmlFor="customRadio1">Unlimited</label>
- </div>
- <div className="custom-control custom-radio offset-4 mb-2">
- <input
- type="radio"
- className="custom-control-input"
- id="customRadio2"
- value="customRadio2"
- checked={this.state.isGoing}
- onChange={this.handleInputChange}
- name="isGoing"
- />
- <label className="custom-control-label" htmlFor="customRadio2">
- <div className="row align-items-center m-0">
- <input
- type="number"
- min="1"
- max="7"
- className="form-control col-4"
- name="numberOfGuests"
- value={this.state.numberOfGuests}
- onChange={this.handleInputChange}
- />
- <span className="col-auto">Days</span>
- </div>
- </label>
- </div>
- <div className="custom-control custom-radio offset-4 mb-2">
- <input
- type="radio"
- className="custom-control-input"
- id="customRadio3"
- name="isGoing"
- value="customRadio3"
- checked={this.state.isGoing}
- onChange={this.handleInputChange}
- />
- <label className="custom-control-label" htmlFor="customRadio3">
- Custom
- <div className="date-picker">Date Picker</div>
- </label>
- </div>
- <hr />
- <div className="form-group row">
- <label htmlFor="inputDesc" className="col-md-4 col-form-label">Description</label>
- <div className="col-md-4">
- <input type="text" className="form-control" id="inputDesc" placeholder="Enter description" value={this.state.text} onChange={this.handleChange}></input>
- </div>
- </div>
- <div className="form-group row">
- <div className="offset-8 col">
- <button type="button" className="btn btn-primary" type="submit" value="Submit" >Issue</button>
- </div>
- </div>
- </div>
- </form>
- </div>
- );
- };
- }
- const ShareLinkFormWrapper = (props) => {
- return createSubscribedElement(ShareLinkForm, props, [AppContainer, PageContainer]);
- };
- export default withTranslation()(ShareLinkFormWrapper);
|