diff --git a/src/pages/MonitoringPage/MonitoringPage.module.css b/src/pages/MonitoringPage/MonitoringPage.module.css new file mode 100644 index 0000000..3db4884 --- /dev/null +++ b/src/pages/MonitoringPage/MonitoringPage.module.css @@ -0,0 +1,130 @@ +/* MonitoringPage UI*/ + +.dashboard-container { + display: grid; + grid-template-areas: + 'header header header' + 'main logs logs' + 'footer footer footer'; + grid-template-columns: 2fr 1fr 1fr; + gap: 1rem; + padding: 1rem; + background-color: #f5f5f5; + font-family: Arial, sans-serif; +} + +.experiment-overview { + grid-area: header; + display: flex; + justify-content: space-between; + align-items: flex-start; + background: white; + border-radius: 8px; + padding: 1rem; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); +} + +.phase-progress .phase { + display: inline-block; + width: 25px; + height: 25px; + border-radius: 5px; + margin: 0 3px; + text-align: center; + line-height: 25px; + background: #ccc; +} + +.phase.active { + background-color: #5cb85c; + color: white; +} + +.phase.current { + background-color: #f0ad4e; + color: white; +} + +.experiment-controls button { + margin-right: 5px; + border: none; + background: none; + cursor: pointer; + font-size: 1.2rem; +} + +.connection-status .connected { + color: green; + font-weight: bold; +} + +.phase-overview { + grid-area: main; + background: white; + border-radius: 8px; + padding: 1rem; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); +} + +.phase-overview section { + margin-bottom: 1rem; +} + +.phase-overview ul { + list-style-type: none; + padding: 0; +} + +.phase-overview li.checked::before { + content: '✔️ '; +} + +.logs { + grid-area: logs; + background: white; + border-radius: 8px; + padding: 1rem; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); +} + +.logs textarea { + width: 100%; + height: 200px; + margin-top: 0.5rem; +} + +.controls-section { + grid-area: footer; + display: flex; + justify-content: space-between; + gap: 1rem; + background: white; + border-radius: 8px; + padding: 1rem; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); +} + +.gestures, .speech, .direct-speech { + flex: 1; +} + +.direct-speech .speech-input { + display: flex; + margin-top: 0.5rem; +} + +.direct-speech input { + flex: 1; + padding: 0.5rem; + border: 1px solid #ccc; + border-radius: 4px 0 0 4px; +} + +.direct-speech button { + background: #007bff; + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 0 4px 4px 0; + cursor: pointer; +} diff --git a/src/pages/MonitoringPage/MonitoringPage.tsx b/src/pages/MonitoringPage/MonitoringPage.tsx new file mode 100644 index 0000000..86142b7 --- /dev/null +++ b/src/pages/MonitoringPage/MonitoringPage.tsx @@ -0,0 +1,118 @@ +import React from 'react'; +import styles from './MonitoringPage.module.css' + +export default function ExperimentDashboard() { + return ( +
+
+
+

Experiment Overview

+

Phase name: Rhyming fish

+
+ 1 + 2 + 3 + 4 + 5 +
+
+ +
+

Experiment Controls

+
+ + + + +
+
+ +
+

Connection:

+

● Robot is connected

+
+
+ +
+
+

Goals

+
    +
  • Convince the RP that you are a fish
  • +
  • Reference Shakespeare
  • +
  • Give a compliment
  • +
+
+ +
+

Triggers

+
    +
  • Convince the RP that you are a fish
  • +
  • Reference Shakespeare
  • +
  • Give a compliment
  • +
+
+ +
+

Norms

+
    +
  • Rhyme when talking
  • +
  • Talk like a fish
  • +
+
+ +
+

Conditional Norms

+
    +
  • “RP is sad” - Be nice
  • +
+
+
+ + + + +
+ ); +}