function onResourceChanged()

in webview-ui/src/InspektorGadget/NewTraceDialog.tsx [59:85]


    function onResourceChanged(resource: string | null) {
        const metadata = (resource && configuredResources[resource]) || null;
        const extraProperties = toExtraPropertyObject(metadata?.extraProperties ?? GadgetExtraProperties.None);

        const displayProperties = metadata?.defaultProperties || [];
        const sortSpecifiers = metadata?.defaultSort || [];
        const maxItemCount = extraProperties.requiresMaxItemCount
            ? traceConfig.maxItemCount || defaultMaxItemCount
            : undefined;
        const excludeThreads = extraProperties.threadExclusionAllowed ? true : undefined;
        const timeout = extraProperties.requiresTimeout ? traceConfig.timeout || defaultTimeoutInSeconds : undefined;
        const { namespace, podName, containerName, ...rest } = traceConfig.filters!;
        const filters = extraProperties.noK8sResourceFiltering
            ? { ...rest, namespace: NamespaceSelection.Default }
            : traceConfig.filters;

        setTraceConfig({
            ...traceConfig,
            resource: resource || "",
            filters,
            displayProperties,
            sortSpecifiers,
            excludeThreads,
            maxItemCount,
            timeout,
        });
    }