0.1.4 • Published 5 years ago

@justdialog/core v0.1.4

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

JustDialog

Traditional dialog framework for react and react-native, without state management, with help of @reactjsf

Create Dialog Container

Create dialog container for manage or dialog actions

import  React  from  'react';
import { JustDialogProvider } from  '@justdialog/core';
import  *  as  components  from  '@justdialog/fabric-ui';
//import  *  as  components  from  '@justdialog/fabric-ui';
//import  *  as  components  from  '@justdialog/antd';
//import  *  as  components  from  '@justdialog/material-ui';
import  ReactJsfForm  from  '@reactjsf/core';
import localizeSchema from '...';
import localizeText from '...';

const  AppPage= () =>
	<JustDialogProvider components={components}
		form={ReactJsfForm}
		okButtonText={localizeText("Ok")}
		cancelButtonText={localizeText("Cancel")}
		closeButtonText={localizeText("Close")}
		schemaCustomizer={schema  =>  localizeSchema({
			...schema,
			"ui:hideTitle":true,
			"ui:hideBorder":true
		})}
	>
	{...}
	</JustDialogProvider>;

Use it as you want

Confirm sample

const  Component({})=> {
	const  justDialog=useContext(JustDialogContext);
	return <>
		<h1>Confirm Sample</h1>
		<button onClick={()=>justDialog.confirm({
			title:"Delete File",
			content:"Do you really want to delete",
			onOk:(onDismiss)=>{
				console.log("deleted");
				onDismiss();
			}
		})}>
			Click To Delete
		</button>
	</>
};

Input Sample

const  Component({defaultValue})=> {
	const  justDialog=useContext(JustDialogContext);
	return <>
		<h1>Confirm Sample</h1>
		<button onClick={()=>justDialog.input({
			title:"Rename File",
			label:"New File Name",
			defaultValue,
			validate:val=>{
				if (val && defaultValue==val)
					return [{
						dataPath:"",
						message:l`Same name is not allowed`,
						custom:true
					}];
				return  null;
			},
			transformErrors:  errors  =>  errors
				.map(i  =>({...i,message:i.message!="Same name is not allowed"
				?"File name is required"
				:i.message
			})),
			onOk:(value,onDismiss)=>{
				console.log("value is",value);
				onDismiss();
			}
		}})}>
			Click To Delete
		</button>
	</>
};

Form Sample

const  Component({defaultValue})=> {
	const  justDialog=useContext(JustDialogContext);
	return <>
		<h1>Confirm Sample</h1>
		<button onClick={()=>justDialog.input({
			title:"Rename File",
			liveValidate:true,
			schema:{
				"type": "object",
				"required": ["firstName","lastName"],
				"properties": {
					"firstName": {
						"type": "string",
						"title": "First name",
						"ui:autofocus": true
					},
					"lastName": {
						"type": "string",
						"title": "Last name"
					},
					"age": {
						"type": "integer",
						"ui:widget": "updown",
						"title": "Age of person",
						"description": "(earthian year)"
					},
					"bio": {
						"type": "string",
						"title": "Bio",
						"ui:widget": "textarea"
					},
					"password": {
						"type": "string",
						"title": "Password",
						"minLength": 3,
						"ui:widget": "password",
						"ui:help": "Hint: Make it strong!"
					},
					"telephone": {
						"type": "string",
						"title": "Telephone",
						"minLength": 10,
						"ui:inputType": "tel"
					}
				}
			},
			onOk:(value,onDismiss)=>{
				console.log("value is",value);
				onDismiss();
			}
		}})}>
			Click To Delete
		</button>
	</>
};

Projects

ProjectPlatformsTypeDefinition
@justdialog/corereact,react-nativeCore
@justdialog/antdreactWidgetAnt Design Widget Set
@justdialog/bootstrapreactWidgetBootstrap Widget Set
@justdialog/fabric-uireactWidgetFabric Ui Widget Set
@justdialog/material-uireactWidgetMaterial Ui Widget Set

React-Native Projects

Not implemented yet.

Live Playground

Not implemented yet.

License

MIT