@edifice.io/react 2.5.16-develop-pedago.20260506110000 → 2.5.16-develop-pedago.20260506150449

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,6 +36,12 @@ export interface InternalLinkerProps {
36
36
  disableApplicationSelector?: boolean;
37
37
  /** Optional callback to filter resources after loading. Applied in addition to search filters. */
38
38
  resourceFilter?: (resource: ILinkedResource) => boolean;
39
+ /**
40
+ * When provided, replaces the built-in search/load logic entirely.
41
+ * Called with the current search terms and selected application whenever the search changes.
42
+ * The returned resources are displayed as-is (no additional filtering or sorting).
43
+ */
44
+ onSearch?: (search: string, application?: ApplicationOption) => Promise<ILinkedResource[]>;
39
45
  /** When true, a "load more" button is shown. The caller controls this flag. */
40
46
  hasMoreResources?: boolean;
41
47
  /** Called when the user clicks the "load more" button. */
@@ -43,5 +49,5 @@ export interface InternalLinkerProps {
43
49
  /** Label for the "load more" button. Defaults to the `bbm.linker.see.more` i18n key. */
44
50
  loadMoreLabel?: string;
45
51
  }
46
- export declare const InternalLinker: ({ appCode, defaultAppCode, defaultResourceId, onChange, onSelect, multiple, resourceList, applicationList, showApplicationSelector, disableApplicationSelector, resourceFilter, hasMoreResources, onLoadMore, loadMoreLabel, }: InternalLinkerProps) => import("react/jsx-runtime").JSX.Element;
52
+ export declare const InternalLinker: ({ appCode, defaultAppCode, defaultResourceId, onChange, onSelect, multiple, resourceList, applicationList, showApplicationSelector, disableApplicationSelector, resourceFilter, onSearch, hasMoreResources, onLoadMore, loadMoreLabel, }: InternalLinkerProps) => import("react/jsx-runtime").JSX.Element;
47
53
  export default InternalLinker;
@@ -25,6 +25,7 @@ const InternalLinker = ({
25
25
  showApplicationSelector = !0,
26
26
  disableApplicationSelector = !1,
27
27
  resourceFilter,
28
+ onSearch,
28
29
  hasMoreResources,
29
30
  onLoadMore,
30
31
  loadMoreLabel
@@ -43,6 +44,14 @@ const InternalLinker = ({
43
44
  return ((_a = resource.name) == null ? void 0 : _a.toLowerCase().includes(searchParam)) || ((_b = resource.creatorName) == null ? void 0 : _b.toLowerCase().includes(searchParam)) || ((_c = resource.description) == null ? void 0 : _c.toLowerCase().includes(searchParam));
44
45
  }, []), sortResources = useCallback((resources2) => resources2.sort((a, b) => a.modifiedAt < b.modifiedAt ? 1 : -1), []), loadAndDisplayResources = useCallback((search) => {
45
46
  async function load() {
47
+ if (onSearch) {
48
+ try {
49
+ setResources(await onSearch(search || "", selectedApplication));
50
+ } catch {
51
+ setResources([]);
52
+ }
53
+ return;
54
+ }
46
55
  if (resourceList) {
47
56
  let filteredResources = resourceList.filter((resource) => filterResources(resource, search));
48
57
  resourceFilter && (filteredResources = filteredResources.filter(resourceFilter)), setResources(sortResources(filteredResources));
@@ -67,7 +76,7 @@ const InternalLinker = ({
67
76
  setResources([]);
68
77
  }
69
78
  load();
70
- }, [loadResources, selectedApplication, filterResources, sortResources, resourceList, resourceFilter]), [selectedDocuments, setSelectedDocuments] = useState([]), handleOptionClick = (option) => {
79
+ }, [onSearch, loadResources, selectedApplication, filterResources, sortResources, resourceList, resourceFilter]), [selectedDocuments, setSelectedDocuments] = useState([]), handleOptionClick = (option) => {
71
80
  onChange == null || onChange(option), setSelectedApplication(option);
72
81
  }, handleSearchChange = (event) => {
73
82
  const newText = event.target.value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.5.16-develop-pedago.20260506110000",
3
+ "version": "2.5.16-develop-pedago.20260506150449",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -135,9 +135,9 @@
135
135
  "swiper": "^10.1.0",
136
136
  "ua-parser-js": "^1.0.36",
137
137
  "react-pdf": "10.2.0",
138
- "@edifice.io/bootstrap": "2.5.16-develop-pedago.20260506110000",
139
- "@edifice.io/tiptap-extensions": "2.5.16-develop-pedago.20260506110000",
140
- "@edifice.io/utilities": "2.5.16-develop-pedago.20260506110000"
138
+ "@edifice.io/bootstrap": "2.5.16-develop-pedago.20260506150449",
139
+ "@edifice.io/tiptap-extensions": "2.5.16-develop-pedago.20260506150449",
140
+ "@edifice.io/utilities": "2.5.16-develop-pedago.20260506150449"
141
141
  },
142
142
  "devDependencies": {
143
143
  "@babel/plugin-transform-react-pure-annotations": "^7.23.3",
@@ -168,8 +168,8 @@
168
168
  "vite": "^5.4.11",
169
169
  "vite-plugin-dts": "^4.1.0",
170
170
  "vite-tsconfig-paths": "^5.0.1",
171
- "@edifice.io/client": "2.5.16-develop-pedago.20260506110000",
172
- "@edifice.io/config": "2.5.16-develop-pedago.20260506110000"
171
+ "@edifice.io/client": "2.5.16-develop-pedago.20260506150449",
172
+ "@edifice.io/config": "2.5.16-develop-pedago.20260506150449"
173
173
  },
174
174
  "peerDependencies": {
175
175
  "@react-spring/web": "^9.7.5",