Skip to content

Commit ed6d8a8

Browse files
benjidotshScottGuymer
authored andcommitted
feat(confluence): add support for new frontend system (#513)
fix: Add correct permissions for release
1 parent 7358072 commit ed6d8a8

File tree

14 files changed

+1948
-3650
lines changed

14 files changed

+1948
-3650
lines changed

.github/workflows/release_workspace.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ on:
2525
concurrency:
2626
group: ${{ github.workflow }}-${{ inputs.workspace }}
2727

28+
permissions:
29+
contents: write
30+
actions: write
31+
2832
jobs:
2933
changesets-pr:
3034
name: Update Version Packages PR for ${{ inputs.workspace }}
@@ -45,6 +49,7 @@ jobs:
4549

4650
- name: Checkout
4751
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4
52+
4853
- name: Set up Node
4954
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v4
5055
with:
@@ -110,6 +115,7 @@ jobs:
110115

111116
- name: Checkout
112117
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v4
118+
113119
- name: Set up Node
114120
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v4
115121
with:
@@ -127,6 +133,7 @@ jobs:
127133
key: ${{ runner.os }}-yarn-${{ hashFiles(format('workspaces/${0}/**/yarn.lock', inputs.workspace)) }}
128134
restore-keys: |
129135
${{ runner.os }}-yarn-
136+
130137
- name: yarn install
131138
run: yarn install --immutable
132139

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@philips-software/backstage-plugin-search-confluence-frontend': minor
3+
---
4+
5+
Added support for the new frontend system

workspaces/confluence/.prettierignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ dist-types
33
coverage
44
.vscode
55
.eslintrc.js
6-
report.api.md
6+
report*.api.md
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"version": "1.37.0"
2+
"version": "1.43.2"
33
}

workspaces/confluence/plugins/search-confluence-frontend/package.json

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
{
22
"name": "@philips-software/backstage-plugin-search-confluence-frontend",
33
"version": "2.4.3",
4+
"exports": {
5+
".": "./src/index.ts",
6+
"./alpha": "./src/alpha.tsx",
7+
"./package.json": "./package.json"
8+
},
49
"main": "src/index.ts",
510
"types": "src/index.ts",
11+
"typesVersions": {
12+
"*": {
13+
"alpha": [
14+
"src/alpha.tsx"
15+
],
16+
"package.json": [
17+
"package.json"
18+
]
19+
}
20+
},
621
"license": "MIT",
722
"publishConfig": {
8-
"access": "public",
9-
"main": "dist/index.esm.js",
10-
"types": "dist/index.d.ts"
23+
"access": "public"
1124
},
1225
"repository": {
1326
"type": "git",
@@ -34,6 +47,7 @@
3447
"dependencies": {
3548
"@backstage/core-components": "backstage:^",
3649
"@backstage/core-plugin-api": "backstage:^",
50+
"@backstage/frontend-plugin-api": "backstage:^",
3751
"@backstage/plugin-search-common": "backstage:^",
3852
"@backstage/plugin-search-react": "backstage:^",
3953
"@backstage/theme": "backstage:^",
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
## API Report File for "@philips-software/backstage-plugin-search-confluence-frontend"
2+
3+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4+
5+
```ts
6+
7+
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
8+
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
9+
import { OverridableFrontendPlugin } from '@backstage/frontend-plugin-api';
10+
import { SearchFilterResultTypeBlueprintParams } from '@backstage/plugin-search-react/alpha';
11+
import { SearchResultItemExtensionComponent } from '@backstage/plugin-search-react/alpha';
12+
import { SearchResultItemExtensionPredicate } from '@backstage/plugin-search-react/alpha';
13+
import { SearchResultListItemBlueprintParams } from '@backstage/plugin-search-react/alpha';
14+
15+
// @public
16+
export const confluenceSearchFilterResultType: ExtensionDefinition< {
17+
kind: "search-filter-result-type";
18+
name: undefined;
19+
config: {};
20+
configInput: {};
21+
output: ExtensionDataRef< {
22+
value: string;
23+
name: string;
24+
icon: JSX.Element;
25+
}, "search.filters.result-types.type", {}>;
26+
inputs: {};
27+
params: SearchFilterResultTypeBlueprintParams;
28+
}>;
29+
30+
// @public
31+
export const confluenceSearchResultListItem: ExtensionDefinition< {
32+
kind: "search-result-list-item";
33+
name: undefined;
34+
config: {
35+
noTrack: boolean;
36+
};
37+
configInput: {
38+
noTrack?: boolean | undefined;
39+
};
40+
output: ExtensionDataRef< {
41+
predicate?: SearchResultItemExtensionPredicate;
42+
component: SearchResultItemExtensionComponent;
43+
}, "search.search-result-list-item.item", {}>;
44+
inputs: {};
45+
params: SearchResultListItemBlueprintParams;
46+
}>;
47+
48+
// @public
49+
const _default: OverridableFrontendPlugin< {}, {}, {
50+
"search-filter-result-type:search-confluence-frontend": ExtensionDefinition< {
51+
kind: "search-filter-result-type";
52+
name: undefined;
53+
config: {};
54+
configInput: {};
55+
output: ExtensionDataRef< {
56+
value: string;
57+
name: string;
58+
icon: JSX.Element;
59+
}, "search.filters.result-types.type", {}>;
60+
inputs: {};
61+
params: SearchFilterResultTypeBlueprintParams;
62+
}>;
63+
"search-result-list-item:search-confluence-frontend": ExtensionDefinition< {
64+
kind: "search-result-list-item";
65+
name: undefined;
66+
config: {
67+
noTrack: boolean;
68+
};
69+
configInput: {
70+
noTrack?: boolean | undefined;
71+
};
72+
output: ExtensionDataRef< {
73+
predicate?: SearchResultItemExtensionPredicate;
74+
component: SearchResultItemExtensionComponent;
75+
}, "search.search-result-list-item.item", {}>;
76+
inputs: {};
77+
params: SearchResultListItemBlueprintParams;
78+
}>;
79+
}>;
80+
export default _default;
81+
82+
// (No @packageDocumentation comment for this package)
83+
84+
```

workspaces/confluence/plugins/search-confluence-frontend/report.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import { BackstagePlugin } from '@backstage/core-plugin-api';
88
import { IndexableDocument } from '@backstage/plugin-search-common';
9-
import { default as React_2 } from 'react';
9+
import { JSX as JSX_2 } from 'react/jsx-runtime';
1010
import { ResultHighlight } from '@backstage/plugin-search-common';
1111
import { SearchResultListItemExtensionProps } from '@backstage/plugin-search-react';
1212

@@ -20,7 +20,7 @@ export interface ConfluenceResultItemProps {
2020
export const ConfluenceResultListItem: (props: SearchResultListItemExtensionProps<ConfluenceResultItemProps>) => JSX.Element | null;
2121

2222
// @public
23-
export const ConfluenceSearchIcon: () => React_2.JSX.Element;
23+
export const ConfluenceSearchIcon: () => JSX_2.Element;
2424

2525
// @public
2626
export const searchConfluenceFrontendPlugin: BackstagePlugin< {}, {}, {}>;
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { createFrontendPlugin } from '@backstage/frontend-plugin-api';
2+
import {
3+
SearchFilterResultTypeBlueprint,
4+
SearchResultListItemBlueprint,
5+
} from '@backstage/plugin-search-react/alpha';
6+
import { ConfluenceSearchIcon } from './icons';
7+
8+
/**
9+
* A search result list item extension for Confluence.
10+
*
11+
* @public
12+
*/
13+
export const confluenceSearchResultListItem =
14+
SearchResultListItemBlueprint.make({
15+
params: {
16+
component: () =>
17+
import('./components/ConfluenceResultListItem').then(
18+
m => m.ConfluenceResultListItem,
19+
),
20+
predicate: result => result.type === 'confluence',
21+
},
22+
});
23+
24+
/**
25+
* A search filter result type extension for Confluence.
26+
*
27+
* @public
28+
*/
29+
export const confluenceSearchFilterResultType =
30+
SearchFilterResultTypeBlueprint.make({
31+
params: {
32+
name: 'Confluence',
33+
value: 'confluence',
34+
icon: <ConfluenceSearchIcon />,
35+
},
36+
});
37+
38+
/**
39+
* A plugin to display search results from Confluence.
40+
*
41+
* @public
42+
*/
43+
export default createFrontendPlugin({
44+
pluginId: 'search-confluence-frontend',
45+
extensions: [
46+
confluenceSearchResultListItem,
47+
confluenceSearchFilterResultType,
48+
],
49+
});

workspaces/confluence/plugins/search-confluence-frontend/src/components/ConfluenceResultListItem/ConfluenceResultListItem.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import React from 'react';
21
import { screen } from '@testing-library/react';
32
import { renderInTestApp } from '@backstage/test-utils';
43
import { ConfluenceResultListItem } from './ConfluenceResultListItem';

workspaces/confluence/plugins/search-confluence-frontend/src/components/ConfluenceResultListItem/ConfluenceResultListItem.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import React from 'react';
21
import { Link } from '@backstage/core-components';
32
import {
43
IndexableDocument,

0 commit comments

Comments
 (0)