Skip to content

Commit 58f75a1

Browse files
authored
feat: statusBarService support extends addElement (#4503)
* feat: statusBarService support extends addElement * feat: statusbar text supports React.ReactNode
1 parent 91eaefa commit 58f75a1

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

packages/core-browser/src/services/status-bar-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export interface StatusBarEntry {
5151
* 可以通过 text 设置图标
5252
* $(iconClassName) :text
5353
*/
54-
text?: string;
54+
text?: string | React.ReactNode;
5555
/**
5656
* 当前菜单显示名称
5757
* 标识当前状态栏组件 contextmenu 显示的名称,如果没有使用 text 代替

packages/status-bar/src/browser/status-bar-item.view.tsx

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -137,22 +137,23 @@ export const StatusBarItem = memo((props: StatusBarEntry) => {
137137
>
138138
<div className={styles.popover_item}>
139139
{iconClass && <span key={-1} className={cls(styles.icon, iconClass)}></span>}
140-
{text &&
141-
transformLabelWithCodicon(
142-
text,
143-
{},
144-
iconService.fromString.bind(iconService),
145-
(text: string, index: number) => (
146-
<span
147-
key={`${text}-${index}`}
148-
style={{ height: '22px', lineHeight: '22px' }}
149-
aria-label={ariaLabel}
150-
role={role}
151-
>
152-
{replaceLocalizePlaceholder(text)}
153-
</span>
154-
),
155-
)}
140+
{typeof text === 'string'
141+
? transformLabelWithCodicon(
142+
text,
143+
{},
144+
iconService.fromString.bind(iconService),
145+
(text: string, index: number) => (
146+
<span
147+
key={`${text}-${index}`}
148+
style={{ height: '22px', lineHeight: '22px' }}
149+
aria-label={ariaLabel}
150+
role={role}
151+
>
152+
{replaceLocalizePlaceholder(text)}
153+
</span>
154+
),
155+
)
156+
: text}
156157
</div>
157158
</Popover>
158159
</div>

packages/status-bar/src/browser/status-bar.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class StatusBarService extends Disposable implements IStatusBarService {
2727
private background: string | undefined;
2828
private foreground: string | undefined;
2929

30-
private entriesObservable = observableValue<Map<string, StatusBarEntry>>(this, new Map());
30+
entriesObservable = observableValue<Map<string, StatusBarEntry>>(this, new Map());
3131

3232
@Autowired(CommandService)
3333
private commandService: CommandService;
@@ -101,14 +101,14 @@ export class StatusBarService extends Disposable implements IStatusBarService {
101101
* @param id 状态栏 id
102102
* @returns
103103
*/
104-
private getEntriesById(id: string) {
104+
getEntriesById(id: string) {
105105
return this.entriesArray.get().filter((entry) => entry.id === id);
106106
}
107107

108108
/**
109109
* 从 storage 中读取 state
110110
*/
111-
private getStorageState(id: string) {
111+
getStorageState(id: string) {
112112
return this.layoutState.getState<{ [id: string]: StatusBarState }>(LAYOUT_STATE.STATUSBAR, {})[id];
113113
}
114114

0 commit comments

Comments
 (0)