Scenario generator for vore roleplay and story ideas.
https://scenario-generator.deliciousreya.net/responses
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
export interface ResultTextPropsBase {
|
|
text: string
|
|
}
|
|
|
|
export interface ResultTextPropsFull extends ResultTextPropsBase {
|
|
mappingId: number
|
|
textId: number
|
|
updated: Date
|
|
}
|
|
|
|
export interface ResultTextPropsLimited extends ResultTextPropsBase {
|
|
mappingId?: null
|
|
textId?: null
|
|
updated?: null
|
|
}
|
|
|
|
export function reconstituteResultText(button: HTMLButtonElement, partial: Partial<ResultTextProps> = {}): ResultTextProps {
|
|
const text = button.innerText
|
|
if (typeof partial.mappingId ?? button.dataset["mappingId"] === "undefined") {
|
|
return {text}
|
|
} else {
|
|
return {
|
|
text,
|
|
mappingId: partial.mappingId ?? parseInt(button.dataset["mappingId"]!),
|
|
textId: partial.textId ?? parseInt(button.dataset["textId"]!),
|
|
updated: partial.updated ?? new Date(parseInt(button.dataset["updated"]!))
|
|
}
|
|
}
|
|
}
|
|
|
|
export type ResultTextProps = ResultTextPropsFull|ResultTextPropsLimited
|
|
|
|
export function ResultText({text, mappingId, textId, updated}: ResultTextProps) {
|
|
return <button className="resultText"
|
|
{...(updated
|
|
? { "data-mapping-id": mappingId, "data-text-id": textId, "data-updated": updated.getTime() }
|
|
: {})}>{text}</button>
|
|
}
|
|
|