React.js starter app for Red Hat Insights products that includes Patternfly 5 and shared Red Hat cloud service frontend components.
In order to access the https://[env].foo.redhat.com in your browser, you have to add entries to your /etc/hosts file. This is a one-time setup (unless you modify hosts) on each machine.
To setup the hosts file run following command:
npm run patch:hostsIf this command throws an error, run it as a sudo:
sudo npm run patch:hosts-
npm install -
PROXY=true npm run start:beta -
Open browser in URL listed in the terminal output
Update config/dev.webpack.config.js according to your application URL. Read more.
npm run verify will run npm run lint (eslint) and npm test (Jest)
- Technical Reference - Comprehensive technical documentation covering architecture, deployment, data structures, and API integration
- Creator Guide - Complete guide for creating learning resources using the Wizard and YAML Editor
- The starter repo uses Travis to deploy the webpack build to another Github repo defined in
.travis.yml- That Github repo has the following branches:
ci-beta(deployed by pushing tomasterormainon this repo)ci-stable(deployed by pushing toci-stableon this repo)qa-beta(deployed by pushing toqa-betaon this repo)qa-stable(deployed by pushing toqa-stableon this repo)prod-beta(deployed by pushing toprod-betaon this repo)prod-stable(deployed by pushing toprod-stableon this repo)
- That Github repo has the following branches:
- Travis uploads results to RedHatInsight's codecov account. To change the account, modify CODECOV_TOKEN on https://travis-ci.com/.
A link component that opens the help panel drawer with specific content in a new tab. Uses Chrome's drawer API to open the help panel.
Usage via Module Federation with Scalprum:
import React from 'react';
import { useScalprum } from '@scalprum/react-core';
import AsyncComponent from '@redhat-cloud-services/frontend-components/AsyncComponent';
function MyComponent() {
const scalprum = useScalprum();
return (
<p>
Need help?{' '}
<AsyncComponent
appName="learningResources"
module="./HelpPanelLink"
scope="learningResources"
ErrorComponent={<span>Error loading help link</span>}
{...scalprum}
title="Configure Slack Integration"
tabType="learn"
url="https://docs.example.com/slack-config"
>
Learn how to configure Slack
</AsyncComponent>
</p>
);
}Alternative: Using custom content instead of URL
<AsyncComponent
appName="learningResources"
module="./HelpPanelLink"
scope="learningResources"
ErrorComponent={<span>Error loading help link</span>}
{...scalprum}
title="Getting Started"
tabType="learn"
content={
<div>
<h3>Welcome!</h3>
<p>Here's how to get started...</p>
</div>
}
>
View getting started guide
</AsyncComponent>Props:
title: string- Title for the tabtabType: 'learn' | 'api' | 'kb' | 'support' | 'search'- Type of content taburl?: string- URL to display in iframe (note: may be blocked by X-Frame-Options)content?: ReactNode- Custom React content to display (alternative to URL)children: ReactNode- Link textvariant?: ButtonProps['variant']- Button variant (default:'link')className?: string- Additional CSS classdata-ouia-component-id?: string- Testing identifier
Note: Must be used within insights-chrome environment. The component uses chrome.drawerActions.toggleDrawerContent() to open the help panel.