
* created wizard * Create wizard form schema * Wizard kafka cluster form (#3245) * created wizard Kafka Cluster form * created error message Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * Update schema.ts * Wizard authentication (#3268) * created authentication form * changed SaslType.tsx switch case * remove console.log * commented unused variables * auth validation * auth Security Protocol * changed schema.ts username, password * added Delegation tokens validation schema * changed auth form --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * New Dashboard flow. Add an ability to configure clusters * wizard kafka cluster validate (#3294) * kafka cluster validate * fixed bootstrap server uncontrolled input warning error --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * Wizard schema registry (#3286) * created schema registry * unused variables * Prevent Default on click --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * feat: cleanup * Application config API (#3242) * wip * wip * wip * wip * OAuthProperties added to dynamic config api * wip * files upload endpoint added * rbac conf api added * rbac conf api improvements * App configuration validation endpoint (#3264) Co-authored-by: iliax <ikuramshin@provectus.com> --------- Co-authored-by: iliax <ikuramshin@provectus.com> Co-authored-by: Oleg Shur <workshur@gmail.com> * add app config api client * refactor cluster section * refactor cluster section * linting * refactor Registry Form (#3311) * refactor Registry Form * refactor Registry --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * auth form improvements * refactoring * linting * file upload API changes * Auth * Start connecting to schema & payload * Auth * fileupload * Wizard JMX Metrics form (#3303) * created JMX Metrics form * refactor JMXMetrics.tsx styles * added cursor on checkbox, changed styles submit button * refactor Metrics * refactoring * uncomment schema connect validation --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * validate api * refactor * Wizard Kafka Connect form (#3300) * created Kafka Connect form * renaming functions and variables * refactor * changed button name * refactoring kafka connect * made handler function, reset replace with set value, * refactoring * uncomment schema metrics validation --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> * fixing AdminClient validation * fixing AdminClient validation * refactor kafka connect * refactor metrics * Per-cluster SSL verification settings (#3336) * ssl configuration moved to app & cluster level * documentations changes * trust all removed, global app settings removed * extracting ssl properties settings to SslPropertiesUtil * wip * documentation fix --------- Co-authored-by: iliax <ikuramshin@provectus.com> Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com> * SSL properties NPE fixes * api integration * custom fields for existing auth config * OffsetsResetServiceTest fix * cluster.properties structure flattening added * kafka-ssl.yml: ssl properties moved to separate section, producer ssl properties copy added * custom auth * error messaging * form submit * feedback * 1. defaulting metrics type to JMX 2. AdminClient id generation made uniq * checkstyle fix * checkstyle fix * refactoring * feedback * feedback * feedback * feedback * feedback * feedback * Wizard: Application info API (#3391) * Application info API added, cluster features enum renamed to `ClusterFeature` * show config for specific envs only * refactor widget * Cluster connection validation err msg improved * KSQL DB section * Refactor + deps upgrade * experiment: get rid of babel * BE validations refactoring * Update kafka-ui.yaml fixed to string type param * fixes #3397 * linting * #3399 adjust size of port input * disable selects for disabled form * Wizard: Keystore separation (#3425) * wip * wip * compose fix * dto structure fix --------- Co-authored-by: iliax <ikuramshin@provectus.com> * dynamic ops enablement properties improvements * own keystore for each section * linting * fix keystore submit * fix keystore submit * feedback * feedback * refactoring * Connect config userName field renamed * metrics configs mapping fix * feedback * Wizard: Jmx ssl (#3448) JMX SSL implementation. Added ability to set specific ssl keystore for each cluster when connection to jmx endpoint. * Review fixes * upd compareVersionsOperation qase id * add toBeAutomated into manual suite * DYNAMIC_CONFIG_ENABLED property description added * Resolve conflicts * Fix issue with 400 error * fix SR edit form --------- Co-authored-by: davitbejanyan <dbejanyan@provectus.com> Co-authored-by: Alexander Krivonosov <31561808+GneyHabub@users.noreply.github.com> Co-authored-by: Oleg Shur <workshur@gmail.com> Co-authored-by: Ilya Kuramshin <iliax@proton.me> Co-authored-by: iliax <ikuramshin@provectus.com> Co-authored-by: Roman Zabaluev <rzabaluev@provectus.com> Co-authored-by: bkhakimov <bkhakimov@provectus.com> Co-authored-by: Mgrdich <mgotm13@gmail.com> Co-authored-by: VladSenyuta <vlad.senyuta@gmail.com>
86 lines
1.8 KiB
TypeScript
86 lines
1.8 KiB
TypeScript
import React from 'react';
|
|
import Alert from 'components/common/Alert/Alert';
|
|
import toast, { ToastType } from 'react-hot-toast';
|
|
import { ErrorResponse } from 'generated-sources';
|
|
|
|
interface ServerResponse {
|
|
status: number;
|
|
statusText: string;
|
|
url?: string;
|
|
message?: ErrorResponse['message'];
|
|
}
|
|
export type ToastTypes = ToastType | 'warning';
|
|
|
|
export const getResponse = async (
|
|
response: Response
|
|
): Promise<ServerResponse> => {
|
|
let body;
|
|
try {
|
|
body = await response.json();
|
|
} catch (e) {
|
|
// do nothing;
|
|
}
|
|
return {
|
|
status: response.status,
|
|
statusText: response.statusText,
|
|
url: response.url,
|
|
message: body?.message,
|
|
};
|
|
};
|
|
|
|
interface AlertOptions {
|
|
id?: string;
|
|
title?: string;
|
|
message: React.ReactNode;
|
|
}
|
|
|
|
export const showAlert = (
|
|
type: ToastTypes,
|
|
{ title, message, id }: AlertOptions
|
|
) => {
|
|
toast.custom(
|
|
(t) => (
|
|
<Alert
|
|
title={title || ''}
|
|
type={type}
|
|
message={message}
|
|
onDissmiss={() => toast.remove(t.id)}
|
|
/>
|
|
),
|
|
{ id }
|
|
);
|
|
};
|
|
|
|
export const showSuccessAlert = (options: AlertOptions) => {
|
|
showAlert('success', {
|
|
...options,
|
|
title: options.title || 'Success',
|
|
});
|
|
};
|
|
|
|
export const showServerError = async (
|
|
response: Response,
|
|
options?: AlertOptions
|
|
) => {
|
|
let body: Record<string, string> = {};
|
|
try {
|
|
body = await response.json();
|
|
} catch (e) {
|
|
// do nothing;
|
|
}
|
|
if (response.status) {
|
|
showAlert('error', {
|
|
id: response.url,
|
|
title: `${response.status} ${response.statusText}`,
|
|
message: body?.message || 'An error occurred',
|
|
...options,
|
|
});
|
|
} else {
|
|
showAlert('error', {
|
|
id: 'server-error',
|
|
title: `Something went wrong`,
|
|
message: 'An error occurred',
|
|
...options,
|
|
});
|
|
}
|
|
};
|