+
+
+ {wChilds
+ .filter(() => isOpen)
+ .map((child, idx) => {
+ if (child) {
+ const key = child.key || `content-${idx}`;
+ return { ...child, key };
+ }
+ return ;
+ })}
+
+
+ );
+};
diff --git a/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.styles.ts b/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.styles.ts
new file mode 100644
index 000000000..c8e7394ee
--- /dev/null
+++ b/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.styles.ts
@@ -0,0 +1,59 @@
+import { createUseStyles } from "react-tss/lib";
+import { EButtonStyle } from "../../utils/Types";
+
+export const ButtonStyles = createUseStyles({
+ classes: {
+ button: {
+ borderRadius: "4px",
+ cursor: "pointer",
+ maxWidth: "100%",
+ padding: "16px 42px",
+ letterSpacing: "0",
+ lineHeight: "16px",
+ textAlign: "center",
+ whiteSpace: "normal",
+ wordBreak: "break-word",
+
+ [`&.${EButtonStyle.primary}`]: {
+ color: "white",
+ backgroundColor: "#007DB3",
+ },
+ [`&.${EButtonStyle.secondary}`]: {
+ color: "#007DB3",
+ backgroundColor: "white",
+ border: `2px solid #007DB3`,
+ },
+ [`&.${EButtonStyle.tertiary}`]: {
+ color: "#007DB3",
+ backgroundColor: "white",
+ lineHeight: "21px",
+ padding: "0",
+ textTransform: "capitalize",
+ },
+ [`&.${EButtonStyle.disabled}`]: {
+ color: "white",
+ backgroundColor: "#D3D3D3",
+ cursor: "not-allowed",
+ },
+ },
+ buttonIcon: {
+ marginRight: "16px",
+ height: "20px",
+ verticalAlign: "middle",
+ width: "20px",
+
+ [`.${EButtonStyle.primary} &`]: {
+ fill: "white",
+ },
+ [`.${EButtonStyle.secondary} &`]: {
+ fill: "#007DB3",
+ },
+ [`.${EButtonStyle.tertiary} &`]: {
+ fill: "#007DB3",
+ },
+ },
+ buttonContent: {
+ verticalAlign: "middle",
+ },
+ },
+});
diff --git a/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.tsx b/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.tsx
new file mode 100644
index 000000000..5b386783a
--- /dev/null
+++ b/samples/react-feedback-sidebar/src/webparts/feedback/components/button/Button.tsx
@@ -0,0 +1,29 @@
+import * as React from "react";
+import clsx from "clsx";
+import { ButtonProps } from "../../utils/Types";
+import { ButtonStyles } from "./Button.styles";
+
+export const Button = ({
+ children,
+ type = "button",
+ onClick,
+ styleType,
+ className,
+ position = "left",
+ disabled = false,
+}: ButtonProps): JSX.Element => {
+ const style = ButtonStyles();
+
+ return (
+