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.
117 lines
4.5 KiB
117 lines
4.5 KiB
import { Plugin } from '@remixproject/engine'
|
|
import * as packageJson from '../../../package.json'
|
|
const introJs = require('intro.js')
|
|
|
|
const profile = {
|
|
name: 'walkthrough',
|
|
displayName: 'Walkthrough',
|
|
description: 'Remix walkthrough for beginner',
|
|
version: packageJson.version,
|
|
methods: ['start', 'startRecorderW']
|
|
}
|
|
|
|
export class WalkthroughService extends Plugin {
|
|
constructor (appManager) {
|
|
super(profile)
|
|
}
|
|
|
|
startRecorderW () {
|
|
introJs().setOptions({
|
|
steps: [{
|
|
title: 'Transactions Recorder',
|
|
intro: 'Save transactions (deployed contracts and function executions) and replay them in another environment e.g Transactions created in Remix VM can be replayed in the Injected Provider.',
|
|
element: document.querySelector('#udappRecorderCard'),
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
},
|
|
{
|
|
element: document.querySelector('#udappRecorderUseLatest'),
|
|
title: 'Transactions Recorder',
|
|
intro: 'If selected, the recorder will run transactions using the latest compilation result.',
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
},
|
|
{
|
|
element: document.querySelector('#udappRecorderSave'),
|
|
title: 'Transactions Recorder',
|
|
intro: 'Once one or more transactions have been executed, click this button to save these transactions as a scenario file.',
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
},
|
|
{
|
|
element: document.querySelector('#udappRecorderRun'),
|
|
title: 'Transactions Recorder',
|
|
intro: 'Open a scenario file and click this button to run it against the current selected provider.',
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
}
|
|
]
|
|
}).onafterchange((targetElement) => {
|
|
const header = document.getElementsByClassName('introjs-tooltip-header')[0]
|
|
if (header) {
|
|
header.classList.add('d-flex')
|
|
header.classList.add('justify-content-between')
|
|
header.classList.add('text-nowrap')
|
|
header.classList.add('pr-0')
|
|
header.id="remixRecorderWalkthrowTitle"
|
|
}
|
|
const skipbutton = document.getElementsByClassName('introjs-skipbutton')[0]
|
|
if (skipbutton) {
|
|
skipbutton.classList.add('ml-3')
|
|
skipbutton.classList.add('text-decoration-none')
|
|
skipbutton.id = 'remixTourSkipbtn'
|
|
}
|
|
}).start()
|
|
}
|
|
|
|
start () {
|
|
if (!localStorage.getItem('hadTour_initial')) {
|
|
introJs().setOptions({
|
|
steps: [{
|
|
title: 'Welcome to Remix IDE',
|
|
intro: 'Click to launch the Home tab that contains links, tips, and shortcuts..',
|
|
element: document.querySelector('#verticalIconsHomeIcon'),
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
},
|
|
{
|
|
element: document.querySelector('#verticalIconsKindsolidity'),
|
|
title: 'Solidity Compiler',
|
|
intro: 'Having selected a .sol file in the File Explorer (the icon above), compile it with the Solidity Compiler.',
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
},
|
|
{
|
|
title: 'Deploy your contract',
|
|
element: document.querySelector('#verticalIconsKindudapp'),
|
|
intro: 'Choose a chain, deploy a contract and play with your functions.',
|
|
tooltipClass: 'bg-light text-dark',
|
|
position: 'right',
|
|
highlightClass: 'bg-light border border-warning'
|
|
}
|
|
]
|
|
}).onafterchange((targetElement) => {
|
|
const header = document.getElementsByClassName('introjs-tooltip-header')[0]
|
|
if (header) {
|
|
header.classList.add('d-flex')
|
|
header.classList.add('justify-content-between')
|
|
header.classList.add('text-nowrap')
|
|
header.classList.add('pr-0')
|
|
}
|
|
const skipbutton = document.getElementsByClassName('introjs-skipbutton')[0]
|
|
if (skipbutton) {
|
|
skipbutton.classList.add('ml-3')
|
|
skipbutton.classList.add('text-decoration-none')
|
|
skipbutton.id = 'remixTourSkipbtn'
|
|
}
|
|
}).start()
|
|
localStorage.setItem('hadTour_initial', true)
|
|
}
|
|
}
|
|
}
|
|
|