How to use customQueryParams method in storybook-root

Best JavaScript code snippet using storybook-root

url.ts

Source:url.ts Github

copy

Full Screen

1import { navigate as navigateRouter, NavigateOptions } from '@reach/router';2import { queryFromLocation } from '@storybook/router';3import { toId, sanitize } from '@storybook/csf';4import { NAVIGATE_URL } from '@storybook/core-events';5import { ModuleArgs, ModuleFn } from '../index';6import { PanelPositions } from './layout';7interface Additions {8 isFullscreen?: boolean;9 showPanel?: boolean;10 panelPosition?: PanelPositions;11 showNav?: boolean;12 selectedPanel?: string;13 viewMode?: string;14}15export interface SubState {16 customQueryParams: QueryParams;17}18// Initialize the state based on the URL.19// NOTE:20// Although we don't change the URL when you change the state, we do support setting initial state21// via the following URL parameters:22// - full: 0/1 -- show fullscreen23// - panel: bottom/right/0 -- set addons panel position (or hide)24// - nav: 0/1 -- show or hide the story list25//26// We also support legacy URLs from storybook <527const initialUrlSupport = ({28 state: { location, path, viewMode, storyId: storyIdFromUrl },29}: ModuleArgs) => {30 const addition: Additions = {};31 const query = queryFromLocation(location);32 let selectedPanel;33 const {34 full,35 panel,36 nav,37 addons,38 panelRight,39 stories,40 addonPanel,41 selectedKind,42 selectedStory,43 path: queryPath,44 ...customQueryParams45 } = query;46 if (full === '1') {47 addition.isFullscreen = true;48 }49 if (panel) {50 if (['right', 'bottom'].includes(panel)) {51 addition.panelPosition = panel;52 } else if (panel === '0') {53 addition.showPanel = false;54 }55 }56 if (nav === '0') {57 addition.showNav = false;58 }59 // Legacy URLs60 if (addons === '0') {61 addition.showPanel = false;62 }63 if (panelRight === '1') {64 addition.panelPosition = 'right';65 }66 if (stories === '0') {67 addition.showNav = false;68 }69 if (addonPanel) {70 selectedPanel = addonPanel;71 }72 // If the user hasn't set the storyId on the URL, we support legacy URLs (selectedKind/selectedStory)73 // NOTE: this "storyId" can just be a prefix of a storyId, really it is a storyIdSpecifier.74 let storyId = storyIdFromUrl;75 if (!storyId) {76 if (selectedKind && selectedStory) {77 storyId = toId(selectedKind, selectedStory);78 } else if (selectedKind) {79 storyId = sanitize(selectedKind);80 }81 }82 return { viewMode, layout: addition, selectedPanel, location, path, customQueryParams, storyId };83};84export interface QueryParams {85 [key: string]: string | null;86}87export interface SubAPI {88 navigateUrl: (url: string, options: NavigateOptions<{}>) => void;89 getQueryParam: (key: string) => string | undefined;90 getUrlState: () => {91 queryParams: QueryParams;92 path: string;93 viewMode?: string;94 storyId?: string;95 url: string;96 };97 setQueryParams: (input: QueryParams) => void;98}99export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...rest }) => {100 const api: SubAPI = {101 getQueryParam: (key) => {102 const { customQueryParams } = store.getState();103 if (customQueryParams) {104 return customQueryParams[key];105 }106 return undefined;107 },108 getUrlState: () => {109 const { path, viewMode, storyId, url, customQueryParams } = store.getState();110 const queryParams = customQueryParams;111 return {112 queryParams,113 path,114 viewMode,115 storyId,116 url,117 };118 },119 setQueryParams(input) {120 const { customQueryParams } = store.getState();121 const queryParams: QueryParams = {};122 store.setState({123 customQueryParams: {124 ...customQueryParams,125 ...Object.entries(input).reduce((acc, [key, value]) => {126 if (value !== null) {127 acc[key] = value;128 }129 return acc;130 }, queryParams),131 },132 });133 },134 navigateUrl(url: string, options: NavigateOptions<{}>) {135 navigateRouter(url, options);136 },137 };138 const initModule = () => {139 fullAPI.on(NAVIGATE_URL, (url: string, options: { [k: string]: any }) => {140 fullAPI.navigateUrl(url, options);141 });142 if (fullAPI.showReleaseNotesOnLaunch()) {143 navigate('/settings/release-notes');144 }145 };146 return {147 api,148 state: initialUrlSupport({ store, navigate, state, provider, fullAPI, ...rest }),149 init: initModule,150 };...

Full Screen

Full Screen

adminController.js

Source:adminController.js Github

copy

Full Screen

1/* eslint-disable no-underscore-dangle */2const bcrypt = require('bcrypt-nodejs');3const dot = require('mongo-dot-notation');4const moment = require('moment');5const { admin, order, product } = require('../model/main');6module.exports = {7 async createAdminAccount() {8 const isAdminAlreadyExist = await admin.findOne({ username: 'admin' }, { _id: 0 }, (err, res) => res);9 if (!isAdminAlreadyExist) {10 const newAdmin = {11 username: 'admin',12 password: bcrypt.hashSync('24567', bcrypt.genSaltSync(10), null)13 };14 admin.create(newAdmin);15 return 'Admin created!';16 }17 return 'Already have admin account';18 },19 async getOrderList(params) {20 const myCustomLabels = {21 totalDocs: 'count',22 docs: 'data',23 limit: 'perPage',24 page: 'currentPage',25 nextPage: 'next',26 prevPage: 'prev',27 totalPages: 'pageCount'28 };29 const options = {30 customLabels: myCustomLabels31 };32 const filters = {};33 //34 if (params.page) {35 options.page = parseInt(params.page, 10);36 }37 if (params.limit) {38 options.limit = params.limit;39 }40 if (params.ascending && params.orderBy) {41 let sortString = params.orderBy;42 if (params.orderBy === 'delivery_date') {43 sortString = 'cInfo.delivery_date';44 }45 if (params.ascending === '0') {46 sortString = `-${sortString}`;47 }48 options.sort = sortString;49 } else {50 options.sort = '-create_time';51 }52 if (params.customFilter) {53 const customQueryParams = JSON.parse(params.customFilter);54 if (customQueryParams.email) {55 filters['cInfo.email'] = { $regex: new RegExp(customQueryParams.email) };56 }57 if (customQueryParams.phone) {58 filters.$or = [{ 'cInfo.phone': customQueryParams.phone }, { 'cInfo.phone2': customQueryParams.phone }];59 // filters['cInfo.phone'] = customQueryParams.phone;60 }61 if (customQueryParams.status) {62 filters.status = parseInt(customQueryParams.status, 10);63 }64 if (customQueryParams.delivery_method) {65 filters['cInfo.delivery_method'] = parseInt(customQueryParams.delivery_method, 10);66 }67 if (customQueryParams.date) {68 customQueryParams.date = moment(customQueryParams.date).utcOffset('+0800').format('YYYY-MM-DD').toString();69 filters['cInfo.delivery_date'] = customQueryParams.date;70 }71 if (customQueryParams.invoice_no) {72 filters.invoice_no = customQueryParams.invoice_no;73 }74 if (customQueryParams.chooseMyOwnTree) {75 filters.flag = { $in: ['choose-my-own-tree'] };76 }77 }78 console.log(filters);79 const result = await order.paginate(filters, options, ((err, res) => res));80 return result;81 },82 async getOrderDetails(orderId) {83 if (!orderId.match(/^[0-9a-fA-F]{24}$/)) {84 // console.log('ID not match');85 return null;86 }87 const result = await order.findOne({ _id: orderId }, {}, (err, res) => res);88 if (!result) {89 return null;90 }91 return result;92 },93 async updateOrder(editedOrder) {94 const updatedOrder = {95 status: editedOrder.status,96 cInfo: {97 phone: editedOrder.phone,98 phone2: editedOrder.phone2,99 remark: editedOrder.remark_client,100 address: editedOrder.address || '',101 address_chi: editedOrder.address_chi || '',102 delivery_date: editedOrder.delivery_date || '',103 region: editedOrder.region || '',104 },105 item: editedOrder.item,106 remark: editedOrder.remark_internal107 };108 var dotOrder = dot.flatten(updatedOrder);109 const response = await order.updateOne({ _id: editedOrder._id }, dotOrder, (err, res) => res);110 return response.ok;111 },112 async updateProduct(editedProduct) {113 var dotOrder = dot.flatten(editedProduct);114 const response = await product.updateOne({}, dotOrder, (err, res) => res);115 return response.ok;116 }...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from 'storybook-root-provider';2import { customQueryParams } from 'storybook-root-provider';3import { customQueryParams } from 'storybook-root-provider';4import { customQueryParams } from 'storybook-root-provider';5import { customQueryParams } from 'storybook-root-provider';6import { customQueryParams } from 'storybook-root-provider';7import { customQueryParams } from 'storybook-root-provider';8import { customQueryParams } from 'storybook-root-provider';9import { customQueryParams } from 'storybook-root-provider';10import { customQueryParams } from 'storybook-root-provider';11import { customQueryParams } from '

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from 'storybook-root';2export const parameters = {3 docs: {4 },5};6import { customQueryParams } from 'storybook-root';7export const globalTypes = {8 theme: {9 toolbar: {10 },11 },12};13 (Story, context) => {14 return (15 <ThemeProvider theme={customQueryParams(context.globals.theme)}>16 );17 },18];19import { addons } from '@storybook/addons';20import { themes } from '@storybook/theming';21import { create } from '@storybook/theming/create';22export const customQueryParams = (theme) => {23 const themeMode = theme === 'light' ? 'light' : 'dark';24 return create({25 textInverseColor: themeMode === 'light' ? 'rgba(255,255,255,0.9)' : 'rgba(0,0,0,0.9)',

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from '@storybook/addon-queryparams';2customQueryParams.setQueryParam('theme', 'dark');3customQueryParams.setQueryParam('theme', 'light');4customQueryParams.setQueryParam('theme', 'dark');5customQueryParams.setQueryParam('theme', 'light');6customQueryParams.setQueryParam('theme', 'dark');7customQueryParams.setQueryParam('theme', 'light');8customQueryParams.setQueryParam('theme', 'dark');9customQueryParams.setQueryParam('theme', 'light');10customQueryParams.setQueryParam('theme', 'dark');11customQueryParams.setQueryParam('theme', 'light');12customQueryParams.setQueryParam('theme', 'dark');13customQueryParams.setQueryParam('theme', 'light');14customQueryParams.setQueryParam('theme', 'dark');15customQueryParams.setQueryParam('theme', 'light');16customQueryParams.setQueryParam('theme', 'dark');17customQueryParams.setQueryParam('theme', 'light');18customQueryParams.setQueryParam('theme', 'dark');19customQueryParams.setQueryParam('theme', 'light');20customQueryParams.setQueryParam('theme', 'dark');

Full Screen

Using AI Code Generation

copy

Full Screen

1import React from 'react';2import { useStorybookState } from '@storybook/api';3import { useParameter } from '@storybook/api';4const MyComponent = () => {5 const story = useStorybookState();6 const customQueryParams = useParameter('customQueryParams', {});7 return <div>My Component</div>;8};9export default MyComponent;10module.exports = {11 stories: ['../src/**/*.stories.(js|mdx)'],12};13module.exports = {14 stories: ['../src/**/*.stories.(js|mdx)'],15};

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from 'storybook-root-provider';2import { addons } from '@storybook/addons';3const channel = addons.getChannel();4channel.on('storybook-root-provider/queryParams', customQueryParams);5import { withRootProvider } from 'storybook-root-provider';6 withRootProvider({7 })8];9import { withRootProvider } from 'storybook-root-provider';10 withRootProvider({11 })12];13import { withRootProvider } from 'storybook-root-provider';14 withRootProvider({15 })16];17import { withRootProvider } from 'storybook-root-provider';18 withRootProvider({19 })20];21import { withRootProvider } from 'storybook-root-provider';22 withRootProvider({23 })24];25import { withRootProvider } from 'storybook-root-provider';26 withRootProvider({27 })28];29import { withRootProvider } from 'storybook-root-provider';30 withRootProvider({31 })32];33import { withRootProvider } from 'storybook-root-provider';

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from 'storybook-root-provider'2customQueryParams({3 'storybook-addon-performance-options': {4 },5});6import { customQueryParams } from '../test';7customQueryParams();8import { useParameter } from '@storybook/api';9const MyComponent = () => {10 const story = useStorybookState();11 const customQueryParams = useParameter('customQueryParams', {});12 return <div>My Component</div>;13};14export default MyComponent;15module.exports = {16 stories: ['../src/**/*.stories.(js|mdx)'],17};18module.exports = {19 stories: ['../src/**/*.stories.(js|mdx)'],20};

Full Screen

Using AI Code Generation

copy

Full Screen

1import { customQueryParams } from 'storybook-root-provider'2customQueryParams({3 'storybook-addon-performance-options': {4 },5});6import { customQueryParams } from '../test';7customQueryParams();

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run storybook-root automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful