This repository has been archived on 2026-05-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Web-Dev-Lesson-Test/00-Lesson-Site/frontend/src/components/Post/Spoiler.tsx
2025-12-09 17:25:14 +00:00

29 lines
775 B
TypeScript

// Path: src/components/Post/Spoiler.tsx
import type { Component, JSX } from "solid-js";
import { createSignal } from "solid-js";
import styles from "./Spoiler.module.scss";
interface Props {
title?: string;
buttonText?: string;
children: JSX.Element;
}
const Spoiler: Component<Props> = (props) => {
const [visible, setVisible] = createSignal(false);
return (
<blockquote class={styles.spoiler}>
{props.title ? <strong class={styles.spoilerTitle}>{props.title}</strong> : <></>}
<button onClick={() => setVisible(!visible())}>
{visible() ? "Hide" : "Show"}
{props.buttonText ? `${props.buttonText}` : " Answer"}
</button>
{visible() && <div class={styles.spoilerContent}>{props.children}</div>}
</blockquote>
);
};
export default Spoiler;