@instructure/quiz-interactions
Version:
A React UI component Library for quiz interaction types.
135 lines (84 loc) • 3.05 kB
Markdown
---
id: quiz-interactions
---
## Instructure Quiz Interactions [WIP]
A React UI component library currently under development by Instructure Inc.
### Installation
Instructure Quiz Interactions prefers to use [`pnpm`] for javascript
dependency management. Before going further, make sure you have `pnpm`
installed and available on your `$PATH`!
```sh
pnpm add quiz-interactions
```
[`pnpm`]: https://pnpm.io/installation
### Development
Copy the repo:
```
git clone ssh://<username>@gerrit.instructure.com:29418/quiz_interactions
```
Run
```sh
pnpm
```
Additionally, we currently have peer dependencies with quiz_interactions and you may need to manually run `pnpm add`s on those.
Current peer dependencies:
`pnpm add react-dnd@^2.2.4`
And then run
```sh
pnpm run start:watch
```
to get an http server up and running, then go to `http://localhost:8080` to pull up the demo and development site. You will need to be running
the following versions of node/pnpm/npm for the library to work correctly:
```
pnpm version == 9.x.x
npm version == 3.10.x
node version == 6.3.x
```
If things aren't going your way and you just aren't sure why, we have a handy tool to oulet your frustration. Run the following command:
```
./bin/table-flip
```
and watch as your node_modules gets blown and a clean slate is established. If that fails, try something else?
# Publishing
See docs/06-releases.md
### Testing
To run tests:
```sh
pnpm test
```
or to have tests running while in active development:
```sh
pnpm run test:watch
```
### Linting
Run `pnpm run lint` to lint the src dir.
We are using [ESLint](http://eslint.org/).
As a convenience, you can install a pre-push hook for git to prevent pushing eslint failing code to gerrit.
```sh
cp hooks/pre-push.example .git/hooks/pre-push
```
You might need to globally install a few eslint packages, depending on your environment. Here's a start:
```sh
npm install -g eslint babel-eslint eslint-plugin-{format-message,react,mocha,standard,promise} eslint-config-standard{,-react}
```
NOTE: Lint errors will fail the build, so be sure to lint.
#### Debugging
To debug tests, place a `debugger` inside your test. Run `pnpm run test:debug` to bring up Karma's test runner. Debug in the browser as you normally would using the browser's developer tools.
### Usage
```js
import React from 'react'
import Edit from 'instructure-qi/lib/components/essay/Edit'
export default MyTabList = function () {
return <Edit />
}
```
For the default theme you'll also need to include the ['Lato' font](http://www.google.com/fonts#UsePlace:use/Collection:Lato:300,400,400i,700,700i) in your application.
### Customization
Coming soon. For now see the [ApplyTheme](http://instructure.github.io/instructure-ui/#ApplyTheme) component docs.
### Browser Support
- Internet Explorer 11 and Edge
- Chrome, Safari, Firefox (last two versions)
### Contribute
See the [contributing guidelines](http://instructure.github.io/instructure-ui/#contributing) for details.
### License
[MIT](LICENSE)