import React from 'react';
import { HelpPopoverProps } from './HelpPopover.js';
import '@bigbinary/neetoui';
interface Details {
name?: string;
value: string;
label?: string;
key?: string;
icon?: React.ReactNode;
error?: string;
kind?: string;
isEditable?: boolean;
extraClasses?: string;
extraWrapperClasses?: string;
id?: string;
fieldValueId?: string;
custom?: boolean;
showCopyButton?: boolean;
}
/**
*
* SessionEnvironment is a component that displays the session details like name,
*
* email, phone number, etc. It also provides an option to view more details, where
*
* you can see additional information about the session, which is hidden by
*
* default.
*
* 
*
* @example
*
* import SessionEnvironment from "@bigbinary/neeto-molecules/SessionEnvironment";
*
* const App = () => {
* const details = [
* { name: "name", value: "John Doe" },
* { name: "email", value: "john.doe@example.com" },
* { name: "phone_number", value: "+1 123 456 7890" },
* ];
*
* const moreDetails = [
* {
* name: "created_at",
* value: "2021-09-01 12:00:00",
* kind: "datetime",
* label: "Created at",
* },
* {
* name: "updated_at",
* value: "2021-09-01 12:00:00",
* kind: "datetime",
* label: "Updated at",
* },
* ];
*
* return (
*
*
*
* );
* };
* @endexample
* @example
*
* import { useState } from "react";
*
* import SessionEnvironment from "@bigbinary/neeto-molecules/SessionEnvironment";
*
* const App = () => {
* const basicDetails = [
* {
* name: "name",
* value: "John Doe",
* isEditable: true,
* },
* {
* name: "email",
* value: "john.doe@example.com",
* isEditable: true,
* },
* {
* name: "phone_number",
* value: "+1 123 456 7890",
* },
* ];
*
* const moreDetails = [
* {
* name: "created_at",
* value: "2021-09-01 12:00:00",
* kind: "datetime",
* label: "Created at",
* },
* {
* name: "updated_at",
* value: "2021-09-01 12:00:00",
* kind: "datetime",
* label: "Updated at",
* },
* ];
*
* const [editableDetails, setEditableDetails] = useState([
* ...basicDetails,
* ...moreDetails,
* ]);
*
* const handleSubmit = ({ name, value }) => {
* setEditableDetails(oldDetails =>
* oldDetails.map(detail => {
* if (detail.name === name) {
* return { ...detail, value, isEditing: false };
* }
*
* return detail;
* })
* );
* };
*
* const handleCancel = name => {
* setEditableDetails(oldDetails =>
* oldDetails.map(detail => {
* if (detail.name === name) return findBy({ name }, args.details);
*
* return detail;
* })
* );
* };
*
* return (
*
*
*
* );
* };
* @endexample
*/
declare const SessionEnvironment: React.FC<{
allowMultiline?: boolean;
details: Details[];
handleCancel?: (string) => void;
handleSubmit?: (object) => void;
helpPopoverProps?: HelpPopoverProps;
iconSize?: number;
isLoading?: boolean;
moreDetails?: Details[];
title?: string;
}>;
export { SessionEnvironment as default };