Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.13 KB | None | 0 0
  1. import React from 'react';
  2. import {CSVLink, CSVDownload} from 'react-csv';
  3. import Table from './Table.jsx';
  4.  
  5. import axios from 'axios';
  6. import TranslateForm from './components/TranslateForm';
  7. import TranslateOutput from './components/TranslateOutput';
  8. //import './components/contextmenu.scss';
  9. import './components/contextmenu.js'
  10. import ContextMenu from "./components/contextmenu";
  11. const key = "trnsl.1.1.20200108T112402Z.673445eef91fd0a3.1291a50e00d5c50e78cbf0ce86d6af81cd6cd831";
  12.  
  13. const csvHeaders1 = [
  14. "Company","جهة الإتصال ","王玉普"
  15. ]
  16. const csvData1 = [
  17. ['Alfreds Futterkiste' ,'Maria Anders', 'Germany'] ,
  18. ['Rathath IT', 'Abdennour TM' , 'تونس'] ,
  19. ['Sinopec', '王玉普' , '中国'],
  20. ['Auto1', 'Petter' , 'Germany'] ,
  21. ['Estifeda', 'Yousri K' , 'تونس'] ,
  22. ['Nine 10ᵗʰ', 'Amjed Idris' , 'المملكة العربية السعودية '] ,
  23. ['Tamkeen', 'Mohamed Alshibi' , 'المملكة العربية السعودية'] ,
  24. ['Packet Publishing', 'David Become' , 'UK'] ,
  25. ['Software hourse', 'Soro' , 'Poland']
  26. ];
  27.  
  28. const csvHeaders2 = [
  29. { label: 'First. Name', key: 'first.name' },
  30. { label: 'Last Name.', key: 'lastname' },
  31. { label: 'E.m.a.i.l.', key: 'email' }
  32. ];
  33.  
  34. const csvData2 = [
  35. { first:{name: 'Ahm.ed'}, lastname: 'Tomi', email: 'ah@smthing.co.com' },
  36. { first:{name: 'Raed'}, lastname: 'Lab.es', email: 'rl@smthing.co.com' },
  37. { first:{name: 'Yezzi'}, lastname: 'Min l3b', email: 'ymin@cocococo.com' }
  38. ];
  39.  
  40. const csvData3 = [
  41. { 'first.name': 'Ahm.ed', lastname: 'Tomi', email: 'ah@smthing.co.com' },
  42. { 'first.name': 'Raed', lastname: 'Lab.es', email: 'rl@smthing.co.com' },
  43. { 'first.name': 'Yezzi', lastname: 'Min l3b', email: 'ymin@cocococo.com' }
  44. ];
  45.  
  46. class App extends React.Component {
  47. state= {
  48. csvHeaders: csvHeaders1,
  49. csvData: csvData1,
  50. output: '',
  51. yandexFormVisible: false
  52. };
  53. getFileName() {
  54. if (!this.state.filename) return undefined;
  55. if (!this.state.filename.endsWith('.csv')) return this.state.filename + '.csv';
  56. return this.state.filename;
  57. }
  58.  
  59. translate = (textToTranslate, language) => {
  60. axios.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key='+key+'&lang='+language+'&text='+textToTranslate)
  61. .then((response) => {
  62. var output = response.data.text[0];
  63. this.setState({ ...this.state, output: output });
  64. })
  65. .catch((error) =>
  66. console.log(error)
  67. );
  68. }
  69.  
  70. showYandexForm = () => {
  71. console.log('ddupa');
  72. this.setState({
  73. ...this.state,
  74. yandexFormVisible: true
  75. });
  76. }
  77.  
  78. render() {
  79. return (
  80. <div>
  81. <div ><h1>Pretty Example "React-csv"</h1></div>
  82. <div className="row">
  83. <div className="large-3 columns">
  84. <a className="btn"
  85. onClick={() => this.setState({csvHeaders: csvHeaders1, csvData: csvData1})}>
  86. Sample Array Data
  87. </a>
  88. </div>
  89. <div className="large-3 columns">
  90. <a className="btn"
  91. onClick={() => this.setState({csvHeaders: csvHeaders2, csvData: csvData2})}>Sample Object Data1</a>
  92. </div>
  93. <div className="large-3 columns">
  94. <a className="btn"
  95. onClick={() => this.setState({csvHeaders: csvHeaders2, csvData: csvData3})}>Sample Object Data2</a>
  96. </div>
  97. <div className="large-3 columns">
  98. <a className="btn"
  99. onClick={() => this.setState({csvHeaders: csvHeaders1, csvData: csvData2})}>Sample Object Data3</a>
  100. </div>
  101. </div>
  102. <div>
  103. <Table headers={this.state.csvHeaders} data={this.state.csvData} />
  104. </div>
  105. <div className="row">
  106. <div className="large-6 columns"></div>
  107. <div className="large-4 columns">
  108. <input
  109. onKeyUp={(e) => this.setState({filename: e.target.value})}
  110. type="text" placeholder="File name"/>
  111. </div>
  112. <div className="large-2 columns">
  113. <CSVLink
  114. headers={this.state.csvHeaders}
  115. data={this.state.csvData}
  116. filename={this.getFileName()}
  117. className="btn"
  118. >
  119. Export to CSV ⬇
  120. </CSVLink>
  121. </div>
  122. </div>
  123. <div>
  124. <b>Header :</b>
  125. <div><pre>{JSON.stringify(this.state.csvHeaders, null, 2) }</pre></div>
  126. <b>Data : </b>
  127. <div><pre>{JSON.stringify(this.state.csvData, null, 2) }</pre></div>
  128. </div>
  129. <div id="that"><ContextMenu showYandexForm={this.showYandexForm}/></div>
  130. {this.state.yandexFormVisible ? <TranslateForm translate={this.translate}/> : <div></div>}
  131. {this.state.yandexFormVisible ? <TranslateOutput output={this.state.output}/> : <div></div>}
  132. </div>
  133.  
  134. );
  135. }
  136. }
  137.  
  138. export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement