• Stars
    star
    214
  • Rank 184,021 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A terminal react component with support for light and dark modes.

CI Jest Code Coverage Report Types TypeScript CodeQL Scan

React Terminal UI

A React terminal component with support for light/dark modes. Styling is courtesy of termynal.js.

Check out the Demo 😍

React Terminal UI Demo Dark

React Terminal UI Demo Light

Installation

npm install --save react-terminal-ui

Usage

React Terminal UI is a "dumb component"-- whatever props you pass in, it will render. You usually want to have a smart, controller component that controls terminal state. For example:

import React from 'react';
import Terminal, { ColorMode, TerminalOutput } from 'react-terminal-ui';

const TerminalController = (props = {}) => {
  const [terminalLineData, setTerminalLineData] = useState([
    <TerminalOutput>Welcome to the React Terminal UI Demo!</TerminalOutput>
  ]);
  // Terminal has 100% width by default so it should usually be wrapped in a container div
  return (
    <div className="container">
      <Terminal name='React Terminal Usage Example' colorMode={ ColorMode.Light }  onInput={ terminalInput => console.log(`New terminal input received: '${ terminalInput }'`) }>
        { terminalLineData }
      </Terminal>
    </div>
  )
};

Component Props

Name Description
name Name of the terminal. Displays at the top of the rendered component. In the demo, the name is set to React Terminal UI.
colorMode Terminal color mode - either Light or Dark. Defaults to Dark.
onInput A callback function that is invoked when a user presses enter on the prompt. The function is passed the current prompt input.
startingInputValue Starting input value. If this prop changes, any user-entered input will be overridden by this value. Defaults to the empty string ("").
prompt The prompt character. Defaults to '$'.
height Height of the terminal. Defaults to 600px.
redBtnCallback Optional callback function for the red button. If provided, the function will be invoked when the red button is clicked.
yellowBtnCallback Optional callback function for the yellow button. If provided, the function will be invoked when the yellow button is clicked.
greenBtnCallback Optional callback function for the green button. If provided, the function will be invoked when the green button is clicked.

Development

Make sure to run npm run install-peers after npm install so peer dependencies are also installed.

License

MIT

Termynal.js is also licensed under MIT, Copyright (C) 2017 Ines Montani.

More Repositories

1

bootstrap3-contact-form

Bootstrap 3 Contact Form with Captcha
PHP
169
star
2

discourse-ldap-auth

Discourse plugin to enable LDAP/Active Directory authentication.
Ruby
70
star
3

textbox-revision-tracker

A jQuery plugin to track text revisions to HTML inputs or text areas.
JavaScript
15
star
4

gollum-easy-install

An Ansible playbook to install a secure, private Gollum wiki instance.
Ruby
8
star
5

router-security-checklist

A checklist to ensure you have the most secure router possible.
7
star
6

transcripts.io.src

Source transcript texts for https://transcripts.io
HTML
4
star
7

express-survey

A framework to quickly create surveys, written on top of Express.js.
JavaScript
4
star
8

reports-micro-service

A RESTful Java 8/Tomcat8 micro service for running Reports. Easily deployable to a AWS Elastic Beanstalk.
Java
4
star
9

askbot-slack

Simple Slack integration for Askbot. When a question, comment or answer is posted to Askbot, a specific Slack channel is sent a message..
Python
2
star
10

jonbake.com

Personal website: http://jonbake.com.
SCSS
2
star
11

person-activity-fit-diagnostic

The Person-Activity Fit Diagnostic test taken from the book The How of Happiness.
Mustache
2
star
12

pull-request-checklist

1
star
13

discourse-user-bulk-action

A simple ruby script for performing bulk actions (UPSERT, ACTIVATE or INACTIVATE) on a list of users.
Ruby
1
star
14

menu-hotkeys

Allow users to easily create hotkeys (keyboard shortcuts) to HTML menu items.
JavaScript
1
star
15

matomo-ansible

Provision a secure, personal Matomo instance with a single command.
1
star
16

jquery-html5-audioplayer

An jQuery plugin HTML5 audio player with keyboard shortcut controls.
JavaScript
1
star
17

react-calendar-full

A full-featured React calendar component with event scheduling and monthly, weekly, and daily views.
TypeScript
1
star