Type Parameters

Hierarchy (View Summary)

Constructors

Properties

AdditionalContent?: new (
    props: AdditionalContentProps<T, U>,
) => Component<AdditionalContentProps<T, U>, any>
adminLevel?: number
context: { admin: default }

If using the new style context, re-declare this in your class to be the React.ContextType of your static contextType. Should be used with type annotation or static contextType.

static contextType = MyContext
// For TS pre-3.7:
context!: React.ContextType<typeof MyContext>
// For TS 3.7 and above:
declare context: React.ContextType<typeof MyContext>
EditForm: new (
    props: EditFormProps<T, U>,
) => Component<EditFormProps<T, U>, any>
extraFormKey?: string
ExtraFormSection?: new (
    props: ExtraFormSectionProps<T, U>,
) => Component<ExtraFormSectionProps<T, U>, any>
identifierKey: string
itemTypeName: string
labelKey: string
limitOne: boolean = false
links?: { [key: string]: Element }
listDataKey: string
props: Readonly<V> & Readonly<{ children?: ReactNode }>
refs: { [key: string]: ReactInstance }
state: EditableConfigListState = ...
urlBase: string
contextType?: Context<any>

If set, this.context will be set at runtime to the current value of the given Context.

Usage:

type MyContext = number
const Ctx = React.createContext<MyContext>(0)

class Foo extends React.Component {
static contextType = Ctx
context!: React.ContextType<typeof Ctx>
render () {
return <>My context's value: {this.context}</>;
}
}
contextTypes: { admin: Validator<object> } = ...

Methods

  • canCreate Does this service have the ability to create a new item? The default is true but the logic can be overridden by other classes that inherit GenericEditableConfigList. For example, a class would only want to create a new item if the admin is a system admin.

    Returns boolean

  • canDelete Does this service have the ability to delete an item? The default is true, as long as the user is a system admin, but the logic can be overridden by other classes that inherit GenericEditableConfigList.

    Returns boolean

  • Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

    Parameters

    • error: Error
    • errorInfo: ErrorInfo

    Returns void

  • Called immediately after a component is mounted. Setting state here will trigger re-rendering.

    Returns void

  • Called immediately after updating occurs. Not called for the initial render.

    The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.

    Parameters

    • prevProps: Readonly<V>
    • prevState: Readonly<EditableConfigListState>
    • Optionalsnapshot: any

    Returns void

  • Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in componentDidMount.

    Returns void

  • Parameters

    • Optionalcallback: () => void

    Returns void

  • Returns a human-readable summary of the association count shown next to the item label (e.g. "3 libraries", "no libraries"). Override in subclasses that use different terminology (e.g. "registered libraries", "roles").

    Parameters

    • count: number

    Returns string

  • Returns the full list of libraries known to the server, used to resolve short names to display names and UUIDs for the associated-items panel.

    The base implementation accesses data.allLibraries via an any cast because the generic T is not constrained to include that field (e.g. LibrariesData does not have it). Subclasses whose data type declares allLibraries (e.g. Collections, IndividualAdmins) should override this method with a type-safe accessor to avoid the cast.

    Returns LibraryData[]

  • Returns the list of display entries to show in the associated-items panel for a given item, or undefined if the panel does not apply to this item.

    Return semantics (used by renderLi to drive toggle visibility):

    • undefined → the feature does not apply; no toggle is rendered.
    • [] → the feature applies but there are no associations; a disabled toggle is rendered.
    • […entries] → associations exist; an enabled toggle is rendered.

    The base implementation reads the item's libraries field (an array of { short_name } objects) and resolves each entry against getAllLibraries. Subclasses may override to supply different data sources or terminology (see DiscoveryServices.getAssociatedEntries, IndividualAdmins.getAssociatedEntries).

    Subclasses that do not support the feature should not override this method; simply ensure that the item type has no libraries field so the base implementation returns undefined for every item (see Libraries).

    Parameters

    • item: U

    Returns AssociatedEntry[]

  • Returns the raw list of items from the current data, or [] when data has not yet loaded. Centralizes the any cast required because T is not constrained to include listDataKey.

    Returns U[]

  • Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

    Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

    Parameters

    • prevProps: Readonly<V>
    • prevState: Readonly<EditableConfigListState>

    Returns any

  • Type Parameters

    • K extends "expandedItems"

    Parameters

    • state:
          | EditableConfigListState
          | (
              prevState: Readonly<EditableConfigListState>,
              props: Readonly<V>,
          ) => EditableConfigListState | Pick<EditableConfigListState, K>
          | Pick<EditableConfigListState, K>
    • Optionalcallback: () => void

    Returns void

  • Called to determine whether the change in props and state should trigger a re-render.

    Component always returns true. PureComponent implements a shallow comparison on props and state and returns true if any props or states have changed.

    If false is returned, Component#render, componentWillUpdate and componentDidUpdate will not be called.

    Parameters

    • nextProps: Readonly<V>
    • nextState: Readonly<EditableConfigListState>
    • nextContext: any

    Returns boolean