mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* Relax validator for installing charts Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Tweak spacing between words in confirmation dialog Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Add mocks for monaco editor and virtualized auto sizer to allow components to be rendered in unit tests Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Improve typing for a function Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove usage of shared global state from a component Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Provide a way to unit test usages of storages Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Add way to get current value from select in behavioural unit tests Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Rework installation of helm charts to get rid of the majority of bugs Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Update snapshots Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove technical test for being covered in behaviours Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Split behaviour to smaller pieces Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Add tests accidentally removed back Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Mark functions causing side effects Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove behaviour covered by other behaviours Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Tweak naming Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove unused dependency Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import "./logs-dialog.scss";
|
|
|
|
import React from "react";
|
|
import type { DialogProps } from "../dialog";
|
|
import { Dialog } from "../dialog";
|
|
import { Wizard, WizardStep } from "../wizard";
|
|
import { Notifications } from "../notifications";
|
|
import { Button } from "../button";
|
|
import { Icon } from "../icon";
|
|
import { clipboard } from "electron";
|
|
import { kebabCase } from "lodash/fp";
|
|
|
|
export interface LogsDialogProps extends DialogProps {
|
|
title: string;
|
|
logs: string;
|
|
}
|
|
|
|
export function LogsDialog({ title, logs, ...dialogProps }: LogsDialogProps) {
|
|
return (
|
|
<Dialog
|
|
{...dialogProps}
|
|
className="LogsDialog"
|
|
data-testid={`logs-dialog-for-${kebabCase(title)}`}
|
|
>
|
|
<Wizard
|
|
header={<h5>{title}</h5>}
|
|
done={dialogProps.close}
|
|
>
|
|
<WizardStep
|
|
scrollable={false}
|
|
customButtons={(
|
|
<div className="buttons flex gaps align-center justify-space-between">
|
|
<Button
|
|
plain
|
|
onClick={() => {
|
|
clipboard.writeText(logs);
|
|
Notifications.ok(`Logs copied to clipboard.`);
|
|
}}
|
|
>
|
|
<Icon material="assignment"/>
|
|
{" Copy to clipboard"}
|
|
</Button>
|
|
<Button plain onClick={dialogProps.close}>
|
|
Close
|
|
</Button>
|
|
</div>
|
|
)}
|
|
>
|
|
<code className="block">
|
|
{logs || "There are no logs available."}
|
|
</code>
|
|
</WizardStep>
|
|
</Wizard>
|
|
</Dialog>
|
|
);
|
|
}
|