timqian commited on
Commit
574b4e5
1 Parent(s): 3e887f8

Add interaction

Browse files
Files changed (2) hide show
  1. package-lock.json +4 -4
  2. src/App.js +38 -7
package-lock.json CHANGED
@@ -16786,16 +16786,16 @@
16786
  }
16787
  },
16788
  "node_modules/typescript": {
16789
- "version": "5.2.2",
16790
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
16791
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
16792
  "peer": true,
16793
  "bin": {
16794
  "tsc": "bin/tsc",
16795
  "tsserver": "bin/tsserver"
16796
  },
16797
  "engines": {
16798
- "node": ">=14.17"
16799
  }
16800
  },
16801
  "node_modules/unbox-primitive": {
 
16786
  }
16787
  },
16788
  "node_modules/typescript": {
16789
+ "version": "4.9.5",
16790
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
16791
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
16792
  "peer": true,
16793
  "bin": {
16794
  "tsc": "bin/tsc",
16795
  "tsserver": "bin/tsserver"
16796
  },
16797
  "engines": {
16798
+ "node": ">=4.2.0"
16799
  }
16800
  },
16801
  "node_modules/unbox-primitive": {
src/App.js CHANGED
@@ -1,7 +1,9 @@
1
  import { useState } from "react";
 
2
 
3
  const projectTypes = ["model", "dataset", "space"];
4
 
 
5
  /**
6
  * 1. User click enter key
7
  * 2. Get model/dataset/space name
@@ -10,9 +12,29 @@ const projectTypes = ["model", "dataset", "space"];
10
  * 5. Draw line chart
11
  */
12
  function App() {
13
- const [projectType, setProjectType] = useState("model");
14
- const [projectName, setProjectName] = useState("meta-llama/Llama-2-7b");
 
 
 
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  return (
17
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-16">
18
  <div className="mx-auto max-w-3xl">
@@ -30,10 +52,11 @@ function App() {
30
  name="country"
31
  autoComplete="country"
32
  className="h-full rounded-md border-0 bg-transparent py-0 pl-3 pr-7 text-gray-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm"
 
33
  >
34
- <option>Model</option>
35
- <option>Dataset</option>
36
- <option>Space</option>
37
  </select>
38
  </div>
39
  <input
@@ -42,11 +65,19 @@ function App() {
42
  id="phone-number"
43
  className="block w-full rounded-md border-0 py-1.5 pl-24 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
44
  placeholder="meta-llama/Llama-2-7b"
 
 
 
 
 
 
 
45
  />
46
  </div>
47
  </div>
48
-
49
- <svg className="line-chart"></svg>
 
50
  </div>
51
  </div>
52
  );
 
1
  import { useState } from "react";
2
+ import chartXkcd from "chart.xkcd";
3
 
4
  const projectTypes = ["model", "dataset", "space"];
5
 
6
+
7
  /**
8
  * 1. User click enter key
9
  * 2. Get model/dataset/space name
 
12
  * 5. Draw line chart
13
  */
14
  function App() {
15
+ const [projectType, setProjectType] = useState("Model");
16
+ const [projectName, setProjectName] = useState("");
17
+
18
+ const onSubmit = () => {
19
+ const svg = document.querySelector('.line-chart')
20
 
21
+ new chartXkcd.Line(svg, {
22
+ title: 'Like hitory',
23
+ xLabel: 'Month',
24
+ yLabel: '$ Dollars',
25
+ data: {
26
+ labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'],
27
+ datasets: [{
28
+ label: 'Plan',
29
+ data: [30, 70, 200, 300, 500, 800, 1500, 2900, 5000, 8000],
30
+ }, {
31
+ label: 'Reality',
32
+ data: [0, 1, 30, 70, 80, 100, 50, 80, 40, 150],
33
+ }]
34
+ },
35
+ options: {}
36
+ });
37
+ }
38
  return (
39
  <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 py-16">
40
  <div className="mx-auto max-w-3xl">
 
52
  name="country"
53
  autoComplete="country"
54
  className="h-full rounded-md border-0 bg-transparent py-0 pl-3 pr-7 text-gray-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm"
55
+ onChange={(e) => setProjectType(e.target.value)}
56
  >
57
+ <option value="model">Model</option>
58
+ <option value="dataset">Dataset</option>
59
+ <option value="space">Space</option>
60
  </select>
61
  </div>
62
  <input
 
65
  id="phone-number"
66
  className="block w-full rounded-md border-0 py-1.5 pl-24 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6"
67
  placeholder="meta-llama/Llama-2-7b"
68
+ value={projectName}
69
+ onChange={(e) => setProjectName(e.target.value)}
70
+ onKeyDown={(e) => {
71
+ if (e.key === "Enter") {
72
+ onSubmit();
73
+ }
74
+ }}
75
  />
76
  </div>
77
  </div>
78
+ <div className="mt-16">
79
+ <svg className="line-chart"></svg>
80
+ </div>
81
  </div>
82
  </div>
83
  );