@kit-data-manager/react-search-component
Version:
All-in-one component for rendering an elastic search UI for searching anything. Built-in support for visualizing related items in a graph and resolving unique identifiers.
30 lines • 1.12 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { PidResolver, pidResolver } from "../../lib/PidResolver";
import { memo, useCallback } from "react";
import { tempResolver } from "../../lib/TempResolver";
import useSWRImmutable from "swr/immutable";
/**
* Resolves a PID and displays the name of the received record
* @param pid A valid PID
* @constructor
*/
export const PidNameDisplay = memo(function PidNameDisplay({ pid }) {
const resolveContent = useCallback(async (pid) => {
if (PidResolver.isPID(pid)) {
const content = await pidResolver.resolve(pid);
return content.name;
}
else if (pid.startsWith("http://purl.obolibrary.org")) {
return tempResolver.resolvePurl(pid);
}
else if (pid.startsWith("https://spdx.org")) {
return tempResolver.resolveSpdx(pid);
}
else {
return pid;
}
}, []);
const { data, error } = useSWRImmutable(pid, resolveContent);
return _jsx("span", { children: error ? pid : (data ?? "") });
});
//# sourceMappingURL=PidNameDisplay.js.map