mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-07 13:43:06 -04:00
173 lines
No EOL
5.5 KiB
JavaScript
173 lines
No EOL
5.5 KiB
JavaScript
const { createEmbed, page } = require("#utils/embed");
|
|
const { acknowledge } = require("#utils/interactions");
|
|
|
|
const {createDynamicCardStack} = require("#cardstack/index");
|
|
const {ResolveCallbackTypes, InteractiveComponentTypes} = require("#cardstack/constants");
|
|
|
|
module.exports = {
|
|
label: "text",
|
|
name: "test",
|
|
metadata: {
|
|
description: 'test.',
|
|
description_short: 'test',
|
|
examples: ['test'],
|
|
category: 'dev',
|
|
usage: 'test'
|
|
},
|
|
onBefore: context => context.user.isClientOwner,
|
|
onCancel: ()=>{},
|
|
run: async (context) => {
|
|
await acknowledge(context);
|
|
|
|
try{
|
|
// This will create a new dynamic card stack
|
|
createDynamicCardStack(context, {
|
|
cards: [
|
|
createEmbed("default", context, { description: "page 1"}),
|
|
createEmbed("default", context, { description: "page 2. this has a conditional button."})
|
|
].map((p, index)=>page(p, {}, { key: `t_${index}` })),
|
|
pageNumberGenerator: (pg)=>{
|
|
return `Test ${pg.index}`
|
|
},
|
|
expires: 10000,
|
|
interactive: {
|
|
always_active_button: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
slot: 1,
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
always_active_button1: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
slot: 1,
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
always_active_button2: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
slot: 1,
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
always_active_button3: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
slot: 1,
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
always_active_button4: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
slot: 1,
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
always_active_button5: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
label: "single sub page",
|
|
visible: true,
|
|
disableCache: true,
|
|
resolvePage: ()=>{
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("success", context, "smiley")
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
conditional_button: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
// Button Label
|
|
label: "Conditional",
|
|
visible: (page) => {
|
|
return (page.getState("key") === "t_1")
|
|
},
|
|
resolvePage: () => {
|
|
return {
|
|
type: ResolveCallbackTypes.SUBSTACK,
|
|
cards: [
|
|
createEmbed("default", context, { description: "this is a conditional sub page"}),
|
|
createEmbed("default", context, { description: "this is a conditional sub page two"})
|
|
].map((p)=>page(p))
|
|
}
|
|
}
|
|
},
|
|
dynamic_button: {
|
|
type: InteractiveComponentTypes.BUTTON,
|
|
slot: 3,
|
|
// Button Label
|
|
label: (page) => {
|
|
console.log(page.getState("key"))
|
|
return page.getState("key") || "test";
|
|
},
|
|
// Next to pagination or new row
|
|
inline: false,
|
|
visible: true,
|
|
// Renders the loading state card
|
|
renderLoadingState: () => {
|
|
return createEmbed("default", context, {
|
|
description: "-# replacing papa card",
|
|
})
|
|
},
|
|
resolvePage: async () => {
|
|
console.log("resolving page")
|
|
return {
|
|
type: ResolveCallbackTypes.REPLACE_PARENT_CARD,
|
|
card: page(createEmbed("default", context, { description: "this is the new over lord " + new Date()}), {}, {
|
|
key: Date.now()
|
|
})
|
|
};
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}catch(e){
|
|
console.log(e)
|
|
}
|
|
}
|
|
}; |