Skip to content

Commit b50aa26

Browse files
committed
- Added BadgeType prop to DisplayCard control.
1 parent 1b556d1 commit b50aa26

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

Rock.JavaScript.Obsidian.Blocks/src/Example/ControlGallery/displayCardGallery.partial.obs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<DisplayCard :aside="aside"
55
:asideIconCssClass="asideIconCssClass"
66
:badgeText="badgeText"
7+
:badgeType="badgeType"
78
:iconCssClass="iconCssClass"
89
:iconLabelType="iconLabelCssClass || iconLabelType"
910
:description="description"
@@ -31,6 +32,7 @@
3132
<template #settings>
3233
<div class="row">
3334
<TextBox v-model="badgeText" formGroupClasses="col-md-4" label="Badge Text" />
35+
<DropDownList v-model="badgeType" :items="badgeTypes" :showBlankItem="false" formGroupClasses="col-md-4" label="Badge Type" />
3436
<IconPicker v-model="iconCssClass" formGroupClasses="col-md-4" label="Icon CSS Class" />
3537
<DropDownList v-model="iconLabelType" :items="labelTypes" :showBlankItem="false" formGroupClasses="col-md-4" label="Icon Label Type" />
3638
<TextBox v-if="iconLabelType === 'custom'" v-model="iconLabelCssClass" formGroupClasses="col-md-4 col-md-offset-8" label="Icon Label Custom Class" />
@@ -63,6 +65,7 @@
6365
import { BtnType } from "@Obsidian/Enums/Controls/btnType";
6466
import { MenuAction } from "@Obsidian/Types/Controls/dropDownMenu";
6567
import { ListItemBag } from "@Obsidian/ViewModels/Utility/listItemBag";
68+
import { BadgeType } from "@Obsidian/Enums/Controls/badgeType";
6669

6770
const labelTypes: ListItemBag[] = [
6871
{ text: "Default", value: "default" },
@@ -74,11 +77,20 @@
7477
{ text: "Custom", value: "custom" },
7578
];
7679

80+
const badgeTypes: ListItemBag[] = [
81+
{ text: "Success", value: BadgeType.Success },
82+
{ text: "Info", value: BadgeType.Info },
83+
{ text: "Warning", value: BadgeType.Warning },
84+
{ text: "Danger", value: BadgeType.Danger },
85+
{ text: "Critical", value: BadgeType.Critical },
86+
];
87+
7788
const importCode = `import DisplayCard from "@Obsidian/Controls/displayCard.obs";`;
7889

7990
const aside = ref<string>("[email protected]");
8091
const asideIconCssClass = ref<string>("ti ti-user");
8192
const badgeText = ref<string>("Step 3");
93+
const badgeType = ref<BadgeType>(BadgeType.Success);
8294
const iconCssClass = ref<string>("ti ti-chart-line");
8395
const iconLabelType = ref<"default" | "primary" | "success" | "info" | "warning" | "danger" | "custom">("info");
8496
const iconLabelCssClass = ref<string>("");
@@ -167,6 +179,7 @@
167179
return `<DisplayCard aside="${aside.value}"
168180
asideIconCssClass="${asideIconCssClass.value}"
169181
badgeText="${badgeText.value}"
182+
badgeType="${badgeType.value}"
170183
iconCssClass="${iconCssClass.value}"
171184
iconLabelType="${iconLabelCssClass.value || iconLabelType.value}"
172185
description="${description.value}"

Rock.JavaScript.Obsidian/Framework/Controls/displayCard.obs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<slot name="prepend" />
1212

1313
<div v-if="badgeText" class="displaycard-badge">
14-
<Badge badgeType="success">{{ badgeText }}</Badge>
14+
<Badge :badgeType="badgeType">{{ badgeText }}</Badge>
1515
</div>
1616

1717
<div class="displaycard-heading">
@@ -100,6 +100,7 @@
100100
import HighlightLabel from "./highlightLabel.obs";
101101
import RockButton from "./rockButton.obs";
102102
import { MenuAction } from "@Obsidian/Types/Controls/dropDownMenu";
103+
import { BadgeType } from "@Obsidian/Enums/Controls/badgeType";
103104

104105
const highlightLabelTypes = ["default", "primary", "success", "info", "warning", "danger", "type", "campus", "custom"] as const;
105106
type HighlightLabelType = (typeof highlightLabelTypes)[number];
@@ -120,6 +121,12 @@
120121
required: false
121122
},
122123

124+
badgeType: {
125+
type: String as PropType<BadgeType>,
126+
required: false,
127+
default: "success" as const
128+
},
129+
123130
iconCssClass: {
124131
type: String as PropType<string | null | undefined>,
125132
required: false

0 commit comments

Comments
 (0)