Sidebar logo update (#814)

* Testing logo ux

* Updated logo on sidebar

* removed unused vars

* adjusted types on icon components
This commit is contained in:
Adil Alimbetov
2020-05-27 14:13:41 +06:00
committed by GitHub
parent 6572ea3ecc
commit f72d97dc17
46 changed files with 208 additions and 130 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ const port = process.env.PLUGIN_PORT ? Number(process.env.PLUGIN_PORT) : 3003;
const enableCors = yn(process.env.PLUGIN_CORS, { default: false });
const logger = getRootLogger();
startStandaloneServer({ port, enableCors, logger }).catch((err) => {
startStandaloneServer({ port, enableCors, logger }).catch(err => {
logger.error(err);
process.exit(1);
});
+4 -4
View File
@@ -20,7 +20,7 @@ const ARTIFICIAL_TIMEOUT = 800;
let inMemoryStore = [...mock];
export const MockComponentFactory: ComponentFactory = {
getAllComponents(): Promise<Component[]> {
return new Promise((resolve) =>
return new Promise(resolve =>
setTimeout(() => resolve(inMemoryStore), ARTIFICIAL_TIMEOUT),
);
},
@@ -28,7 +28,7 @@ export const MockComponentFactory: ComponentFactory = {
return new Promise((resolve, reject) =>
setTimeout(() => {
const mockComponent = inMemoryStore.find(
(component) => component.name === name,
component => component.name === name,
);
if (mockComponent) return resolve(mockComponent);
return reject({ code: 'Component not found!' });
@@ -36,10 +36,10 @@ export const MockComponentFactory: ComponentFactory = {
);
},
removeComponentByName(name: string): Promise<boolean> {
return new Promise((resolve) =>
return new Promise(resolve =>
setTimeout(() => {
inMemoryStore = inMemoryStore.filter(
(component) => component.name !== name,
component => component.name !== name,
);
resolve(true);
}, ARTIFICIAL_TIMEOUT),
@@ -80,7 +80,7 @@ const Settings = () => {
value={token}
fullWidth
variant="outlined"
onChange={(e) => setToken(e.target.value)}
onChange={e => setToken(e.target.value)}
/>
</ListItem>
<ListItem>
@@ -90,7 +90,7 @@ const Settings = () => {
label="Owner"
variant="outlined"
value={owner}
onChange={(e) => setOwner(e.target.value)}
onChange={e => setOwner(e.target.value)}
/>
</ListItem>
<ListItem>
@@ -100,7 +100,7 @@ const Settings = () => {
fullWidth
variant="outlined"
value={repo}
onChange={(e) => setRepo(e.target.value)}
onChange={e => setRepo(e.target.value)}
/>
</ListItem>
<ListItem>
@@ -35,7 +35,7 @@ const BuildName: FC<{ build?: BuildWithSteps }> = ({ build }) => (
</IconLink>
</Box>
);
const useStyles = makeStyles((theme) => ({
const useStyles = makeStyles(theme => ({
neutral: {},
failed: {
position: 'relative',
@@ -50,8 +50,8 @@ export const ActionOutput: FC<{
const [messages, setMessages] = useState([]);
useEffect(() => {
fetch(url)
.then((res) => res.json())
.then((actionOutput) => {
.then(res => res.json())
.then(actionOutput => {
if (typeof actionOutput !== 'undefined') {
setMessages(
actionOutput.map(({ message }: { message: string }) => message),
@@ -26,7 +26,7 @@ export const useAsyncPolling = (
while (isPolling.current === true) {
await pollingFn();
await new Promise((resolve) => setTimeout(resolve, interval));
await new Promise(resolve => setTimeout(resolve, interval));
}
};
+1 -1
View File
@@ -29,7 +29,7 @@ export function useSettings() {
if (
stateFromStorage &&
Object.keys(stateFromStorage).some(
(k) => (settings as any)[k] !== stateFromStorage[k],
k => (settings as any)[k] !== stateFromStorage[k],
)
)
dispatch({
+1 -1
View File
@@ -22,7 +22,7 @@ const port = process.env.PLUGIN_PORT ? Number(process.env.PLUGIN_PORT) : 3003;
const enableCors = yn(process.env.PLUGIN_CORS, { default: false });
const logger = getRootLogger();
startStandaloneServer({ port, enableCors, logger }).catch((err) => {
startStandaloneServer({ port, enableCors, logger }).catch(err => {
logger.error(err);
process.exit(1);
});
@@ -49,7 +49,7 @@ describe('AuditView', () => {
apis = ApiRegistry.from([
[lighthouseApiRef, new LighthouseRestApi('https://lighthouse')],
]);
id = websiteResponse.audits.find((a) => a.status === 'COMPLETED')
id = websiteResponse.audits.find(a => a.status === 'COMPLETED')
?.id as string;
useParams.mockReturnValue({ id });
});
@@ -101,7 +101,7 @@ describe('AuditView', () => {
await rendered.findByTestId('audit-sidebar');
websiteResponse.audits.forEach((a) => {
websiteResponse.audits.forEach(a => {
expect(
rendered.queryByText(formatTime(a.timeCreated)),
).toBeInTheDocument();
@@ -119,14 +119,14 @@ describe('AuditView', () => {
await rendered.findByTestId('audit-sidebar');
const audit = websiteResponse.audits.find((a) => a.id === id) as Audit;
const audit = websiteResponse.audits.find(a => a.id === id) as Audit;
const auditElement = rendered.getByText(formatTime(audit.timeCreated));
expect(auditElement.parentElement?.parentElement?.className).toContain(
'selected',
);
const notSelectedAudit = websiteResponse.audits.find(
(a) => a.id !== id,
a => a.id !== id,
) as Audit;
const notSelectedAuditElement = rendered.getByText(
formatTime(notSelectedAudit.timeCreated),
@@ -147,7 +147,7 @@ describe('AuditView', () => {
await rendered.findByTestId('audit-sidebar');
websiteResponse.audits.forEach((a) => {
websiteResponse.audits.forEach(a => {
expect(
rendered.getByText(formatTime(a.timeCreated)).parentElement
?.parentElement,
@@ -186,7 +186,7 @@ describe('AuditView', () => {
describe.skip('when a loading audit is accessed', () => {
it('shows a loading view', async () => {
id = websiteResponse.audits.find((a) => a.status === 'RUNNING')
id = websiteResponse.audits.find(a => a.status === 'RUNNING')
?.id as string;
useParams.mockReturnValueOnce({ id });
@@ -206,7 +206,7 @@ describe('AuditView', () => {
describe.skip('when a failed audit is accessed', () => {
it('shows an error message', async () => {
id = websiteResponse.audits.find((a) => a.status === 'FAILED')
id = websiteResponse.audits.find(a => a.status === 'FAILED')
?.id as string;
useParams.mockReturnValueOnce({ id });
@@ -165,7 +165,7 @@ describe('CreateAudit', () => {
fireEvent.click(rendered.getByText(/Create Audit/));
await wait(() => expect(rendered.getByLabelText(/URL/)).toBeEnabled());
await new Promise((r) => setTimeout(r, 0));
await new Promise(r => setTimeout(r, 0));
expect(errorApi.post).toHaveBeenCalledWith(expect.any(Error));
});
@@ -28,7 +28,7 @@ import { BackstageTheme } from '@backstage/theme';
import { Progress } from '@backstage/core';
import { ComponentIdValidators } from '../../util/validate';
const useStyles = makeStyles<BackstageTheme>((theme) => ({
const useStyles = makeStyles<BackstageTheme>(theme => ({
form: {
alignItems: 'flex-start',
display: 'flex',
+1 -1
View File
@@ -1,3 +1,3 @@
# sentry-backend
Simple plugin forwarding requests to [Sentry](https://sentry.io) API.
Simple plugin forwarding requests to [Sentry](https://sentry.io) API.
@@ -22,7 +22,7 @@ import { BackstageTheme } from '@backstage/theme';
function stripText(text: string, maxLength: number) {
return text.length > maxLength ? `${text.substr(0, maxLength)}...` : text;
}
const useStyles = makeStyles<BackstageTheme>((theme) => ({
const useStyles = makeStyles<BackstageTheme>(theme => ({
root: {
minWidth: 260,
position: 'relative',
@@ -24,16 +24,16 @@ import { ErrorGraph } from '../ErrorGraph/ErrorGraph';
const columns: TableColumn[] = [
{
title: 'Error',
render: (data) => <ErrorCell sentryIssue={data as SentryIssue} />,
render: data => <ErrorCell sentryIssue={data as SentryIssue} />,
},
{
title: 'Graph',
render: (data) => <ErrorGraph sentryIssue={data as SentryIssue} />,
render: data => <ErrorGraph sentryIssue={data as SentryIssue} />,
},
{
title: 'First seen',
field: 'firstSeen',
render: (data) => {
render: data => {
const { firstSeen } = data as SentryIssue;
return format(firstSeen);
},
@@ -41,7 +41,7 @@ const columns: TableColumn[] = [
{
title: 'Last seen',
field: 'lastSeen',
render: (data) => {
render: data => {
const { lastSeen } = data as SentryIssue;
return format(lastSeen);
},
+1 -1
View File
@@ -33,7 +33,7 @@ function getMockIssues(number: number): SentryIssue[] {
}
export class MockSentryApi implements SentryApi {
fetchIssues(): Promise<SentryIssue[]> {
return new Promise((resolve) => {
return new Promise(resolve => {
setTimeout(() => resolve(getMockIssues(14)), 800);
});
}
@@ -105,14 +105,14 @@ export default class Radar extends React.Component {
static adjustEntries(entries, activeEntry, quadrants, rings, radius) {
let seed = 42;
entries.forEach((entry, idx) => {
const quadrant = quadrants.find((q) => {
const quadrant = quadrants.find(q => {
const match =
typeof entry.quadrant === 'object'
? entry.quadrant.id
: entry.quadrant;
return q.id === match;
});
const ring = rings.find((r) => {
const ring = rings.find(r => {
const match =
typeof entry.ring === 'object' ? entry.ring.id : entry.ring;
return r.id === match;
@@ -190,7 +190,7 @@ export default class Radar extends React.Component {
return (
<svg
ref={(node) => {
ref={node => {
this.node = node;
}}
width={width}
@@ -205,7 +205,7 @@ export default class Radar extends React.Component {
quadrants={quadrants}
rings={rings}
activeEntry={activeEntry}
onEntryMouseEnter={(entry) => this._setActiveEntry(entry)}
onEntryMouseEnter={entry => this._setActiveEntry(entry)}
onEntryMouseLeave={() => this._clearActiveEntry()}
/>
</svg>
@@ -49,16 +49,16 @@ class RadarBubble extends React.PureComponent {
this._updatePosition();
}
_setRect = (rect) => {
_setRect = rect => {
this.rect = rect;
};
_setNode = (node) => {
_setNode = node => {
this.node = node;
};
_setText = (text) => {
_setText = text => {
this.text = text;
};
_setPath = (path) => {
_setPath = path => {
this.path = path;
};
@@ -84,7 +84,7 @@ class RadarGrid extends React.PureComponent {
/>,
];
const ringNodes = rings.map((r) => r.outerRadius).map(makeRingNode);
const ringNodes = rings.map(r => r.outerRadius).map(makeRingNode);
return axisNodes.concat(ringNodes);
}
@@ -88,7 +88,7 @@ class RadarLegend extends React.PureComponent {
<div className={classes.quadrant}>
<h2 className={classes.quadrantHeading}>{quadrant.name}</h2>
<div className={classes.rings}>
{rings.map((ring) =>
{rings.map(ring =>
RadarLegend._renderRing(
ring,
RadarLegend._getSegment(segments, quadrant, ring),
@@ -117,7 +117,7 @@ class RadarLegend extends React.PureComponent {
<p>(empty)</p>
) : (
<ol className={classes.ringList}>
{entries.map((entry) => {
{entries.map(entry => {
let node = <span className={classes.entry}>{entry.title}</span>;
if (entry.url) {
@@ -175,7 +175,7 @@ class RadarLegend extends React.PureComponent {
return (
<g>
{quadrants.map((quadrant) =>
{quadrants.map(quadrant =>
RadarLegend._renderQuadrant(
segments,
quadrant,
@@ -46,16 +46,16 @@ export default class RadarPlot extends React.PureComponent {
rings={rings}
entries={entries}
onEntryMouseEnter={
onEntryMouseEnter && ((entry) => onEntryMouseEnter(entry))
onEntryMouseEnter && (entry => onEntryMouseEnter(entry))
}
onEntryMouseLeave={
onEntryMouseLeave && ((entry) => onEntryMouseLeave(entry))
onEntryMouseLeave && (entry => onEntryMouseLeave(entry))
}
/>
<g transform={`translate(${width / 2}, ${height / 2})`}>
<RadarGrid radius={radius} rings={rings} />
<RadarFooter x={-0.5 * width} y={0.5 * height} />
{entries.map((entry) => (
{entries.map(entry => (
<RadarEntry
key={entry.id}
x={entry.x}