{"version":1,"pages":[{"id":"z1SsGGr7wsapXLMz5aPL","title":"Introduction to MagicJS","pathname":"/magicjs","siteSpaceId":"sitesp_CHISV","description":"MagicJS is an open-source full stack JavaScript / TypeScript framework for building web applications, SaaS products and business tools."},{"id":"sxlDVoa5vMK5kT1OgYHV","title":"Why MagicJS?","pathname":"/magicjs/why-magicjs","siteSpaceId":"sitesp_CHISV","description":"Build Faster, Together: Why MagicJS is Your Future-Proof Framework"},{"id":"dUxUh7mhe8FqbUWGbsY8","title":"Getting Started & Installation","pathname":"/magicjs/getting-started-and-installation","siteSpaceId":"sitesp_CHISV","description":"This page provides guidance on installing and using our framework in both offline and online IDEs."},{"id":"cmAmh7uwMm5hdEBs95t5","title":"Create a new page using React","pathname":"/magicjs/basic-guide/create-a-new-page-using-react","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, you will learn how to create a new page and seamlessly integrate it into the admin console using MagicJS framework.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"hWKfz2vAYYn20XQloMvu","title":"Navigate between pages","pathname":"/magicjs/basic-guide/navigate-between-pages","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we'll explore how to navigate between two pages within the MagicJS framework and utilize route parameters for dynamic page rendering.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"ghTRfw2Say74E8Swm2hl","title":"Create an API and integrate it with the frontend","pathname":"/magicjs/basic-guide/create-an-api-and-integrate-it-with-the-frontend","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we will guide you through the process of creating a backend file and seamlessly integrating it with a frontend file using MagicJS.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"K2AHQx5VyktL3yiLAoHG","title":"Authenticate Users","pathname":"/magicjs/basic-guide/authenticate-users","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we'll explore how to authenticate users and set up conditional rendering for components using MagicJS.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"MeFazqBqXLZYqyJ2QWxf","title":"Authorise based on Roles","pathname":"/magicjs/basic-guide/authenticate-users/authorise-based-on-roles","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we will explore how to implement user role authentication within your MagicJS application.","breadcrumbs":[{"label":"Basic Guide"},{"label":"Authenticate Users"}]},{"id":"vyihPftz9GSW5BHPwLog","title":"Advanced State Management with useContent()","pathname":"/magicjs/basic-guide/advanced-state-management-with-usecontent","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we delve into the intricacies of advanced state management within forms using MagicJS's useContent() hook.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"AcMNsjqgqN9tugfavB6c","title":"Perform CRUD Operations","pathname":"/magicjs/basic-guide/perform-crud-operations","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we will explore how to perform CRUD (Create, Read, Update, Delete) operations using MagicJS, enabling seamless interaction with a backend database.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"Ap0ylI3ecIJgheVPLxgK","title":"Adding Realtime capabilities using socket","pathname":"/magicjs/basic-guide/adding-realtime-capabilities-using-socket","siteSpaceId":"sitesp_CHISV","description":"In this tutorial, we'll learn how to implement real-time messaging capabilities using MagicJS.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"fYMtUn6pPF8kDTCdTnhQ","title":"Handling file uploads and downloads","pathname":"/magicjs/basic-guide/handling-file-uploads-and-downloads","siteSpaceId":"sitesp_CHISV","description":"In this guide, we will learn how to upload and view a file.","breadcrumbs":[{"label":"Basic Guide"}]},{"id":"QAyOSjoRhYteOLx5YZcL","title":"Understanding the concept of features in MagicJS","pathname":"/magicjs/advanced-guide/understanding-the-concept-of-features-in-magicjs","siteSpaceId":"sitesp_CHISV","description":"Magic features are toolkits that empower developers to effortlessly add complex functionalities to their projects, promoting reusability, efficiency, and flexibility in development.","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"zkDiTomXikUf6CstO8Mx","title":"Using UI components & functions across multiple Magic Features","pathname":"/magicjs/advanced-guide/using-ui-components-and-functions-across-multiple-magic-features","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"Nu6DjGP2B5Wr94BFDf8J","title":"Advanced Routing of pages","pathname":"/magicjs/advanced-guide/advanced-routing-of-pages","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"6NY1nwVCFB9sQzqmTSTP","title":"Enable SSR","pathname":"/magicjs/advanced-guide/enable-ssr","siteSpaceId":"sitesp_CHISV","description":"Enabling Server-Side-Rendering (SSR) is a simple process, and this documentation will guide you through the necessary steps.","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"0TPb5kQsBybnn1ZT26M1","title":"Access MongoDB","pathname":"/magicjs/advanced-guide/access-mongodb","siteSpaceId":"sitesp_CHISV","description":"Access and view a MongoDB database online using a temporary credentials.","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"Ehh1l6q5KREEf76GVCP8","title":"Styling pages using Tailwind CSS","pathname":"/magicjs/advanced-guide/styling-pages-using-tailwind-css","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"Advanced Guide"}]},{"id":"iq4QmCCCdcMsGWhehXaY","title":"Deploying","pathname":"/magicjs/deploying","siteSpaceId":"sitesp_CHISV","description":"This guide will walk you through the process of deploying a MagicJS project."},{"id":"sbArkX52ZZCXXARMvAxT","title":"Update MagicJS","pathname":"/magicjs/update-magicjs","siteSpaceId":"sitesp_CHISV","description":"Optimize your app with the latest MagicJS versions for improved performance."},{"id":"G2FfqK9eH2E4gN34yJaX","title":"Frontend","pathname":"/magicjs/api-references/frontend","siteSpaceId":"sitesp_CHISV","description":"API reference in MagicJS serves as a detailed guide to the various functions, components, hooks, and other features that MagicJS offers for building user interfaces.","breadcrumbs":[{"label":"API References"}]},{"id":"myGav2MKRH5Qkb1lUcYW","title":"<LinkDisplay>","pathname":"/magicjs/api-references/frontend/less-than-linkdisplay-greater-than","siteSpaceId":"sitesp_CHISV","description":"LinkDisplay is employed for seamless navigation between pages.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"J7D2kBGegKCAcT4S1Ymr","title":"createSrc() ","pathname":"/magicjs/api-references/frontend/createsrc","siteSpaceId":"sitesp_CHISV","description":"createSrc function is used for reading the uploaded file.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"MACOoHuRZxX4TbJvIrlp","title":"createUploader() ","pathname":"/magicjs/api-references/frontend/createuploader","siteSpaceId":"sitesp_CHISV","description":"createUploader is a function that simplifies file uploads for users.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"x8ij1VWfd7rS8gUM8YCm","title":"importUI() ","pathname":"/magicjs/api-references/frontend/importui","siteSpaceId":"sitesp_CHISV","description":"The importUI function simplifies UI component imports using aliases from a JSON configuration, promoting a modular and organized project structure for improved code manageability.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"msWvbPqOzh6NG54N6PUo","title":"loadConfig() ","pathname":"/magicjs/api-references/frontend/loadconfig","siteSpaceId":"sitesp_CHISV","description":"loadConfig centralizes JSON config retrieval, streamlining backend access with robust error handling for graceful responses in cases of missing values, ensuring enhanced reliability.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"Ary77nI8wOmvicpYkOQc","title":"protected()","pathname":"/magicjs/api-references/frontend/protected","siteSpaceId":"sitesp_CHISV","description":"The Protected component enhances security by restricting access to authorized users, safeguarding sensitive content visibility for authenticated users.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"vu2tUAT2wmCqrTM8UlUG","title":"useParams() ","pathname":"/magicjs/api-references/frontend/useparams","siteSpaceId":"sitesp_CHISV","description":"The useParams function in React lets you effortlessly get and use parameters from the current URL, acting like a magic key to unlock dynamic aspects of your application's URLs.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"DbthDiSZ2bhONbYPMHUL","title":"useAxios()   ","pathname":"/magicjs/api-references/frontend/useaxios","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"5zHqv7XoXy84ogCiUiBg","title":"useLogin() ","pathname":"/magicjs/api-references/frontend/uselogin","siteSpaceId":"sitesp_CHISV","description":"useLogin function serves for authentication, retrieving details like whether the current user is authenticated, their information, and also includes the functionality for logging out.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"6SbkwMOJDGGRHLXm9iml","title":"useSocket() ","pathname":"/magicjs/api-references/frontend/usesocket","siteSpaceId":"sitesp_CHISV","description":"useSocket function is like a walkie-talkie for websites, letting servers and clients chat back and forth in real-time.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"Bvq33Alif6mE5dF1jg3V","title":"useContent()","pathname":"/magicjs/api-references/frontend/usecontent","siteSpaceId":"sitesp_CHISV","description":"We can effectively handle data management through the utilization of useContent().","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"iM87Hs3OUTKKV9J6lg8E","title":"usePromise()","pathname":"/magicjs/api-references/frontend/usepromise","siteSpaceId":"sitesp_CHISV","description":"The usePromise() hook simplifies handling asynchronous operations by managing the state of a Promise-based function.","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"DxA8OGLOulTzhioWsRci","title":"useNotification()","pathname":"/magicjs/api-references/frontend/usenotification","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"},{"label":"Frontend"}]},{"id":"eXoC570g3teuNVk2Ogve","title":"Backend","pathname":"/magicjs/api-references/backend","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"}]},{"id":"a5Mght9a9zkUdOC0NSiX","title":"createBackendFunction() ","pathname":"/magicjs/api-references/backend/createbackendfunction","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"},{"label":"Backend"}]},{"id":"R0ofLNeq2OMq05tZwFHP","title":"data()","pathname":"/magicjs/api-references/backend/data","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"},{"label":"Backend"}]},{"id":"z8cn4MuiaFuImqHGiCVr","title":"io() ","pathname":"/magicjs/api-references/backend/io","siteSpaceId":"sitesp_CHISV","description":"","breadcrumbs":[{"label":"API References"},{"label":"Backend"}]},{"id":"gwvdof55gj8bVYkPh29h","title":"ServerInstance()","pathname":"/magicjs/api-references/backend/serverinstance","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"}]},{"id":"25SijvvyOJ6laSdyg3iy","title":"utils","pathname":"/magicjs/api-references/backend/utils","siteSpaceId":"sitesp_CHISV","description":"The 'utils' module contains many handy functions, each serving a specific purpose to make the system work better.","breadcrumbs":[{"label":"API References"},{"label":"Backend"}]},{"id":"Tl3hYw111iUj9pmNkXLV","title":"hash()","pathname":"/magicjs/api-references/backend/utils/hash","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"aTNibbtRinWCAdCPjXE0","title":"verifyHash()","pathname":"/magicjs/api-references/backend/utils/verifyhash","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"3JRHzOGKqWgHaQTxKp5G","title":"initiateEmailVerification()","pathname":"/magicjs/api-references/backend/utils/initiateemailverification","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"G9GJn51v9CrDPQ2yIT37","title":"saveFileToUserUploads()","pathname":"/magicjs/api-references/backend/utils/savefiletouseruploads","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"X2l9B5Qr4iz9szFNhbha","title":"readFileFromUserUploads()","pathname":"/magicjs/api-references/backend/utils/readfilefromuseruploads","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"W28yvFLPVvmGPRDHgryX","title":"removeFileFromUserUploads()","pathname":"/magicjs/api-references/backend/utils/removefilefromuseruploads","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"tekoAsjl3b2fFyXxbdC2","title":"assignRoleToUser()","pathname":"/magicjs/api-references/backend/utils/assignroletouser","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"dUuJabQQDc9rDEHlQPDL","title":"unassignRoleFromUser()","pathname":"/magicjs/api-references/backend/utils/unassignrolefromuser","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"JMmfcSnhh2bJV4ikkMCi","title":"findAllRolesByUser()","pathname":"/magicjs/api-references/backend/utils/findallrolesbyuser","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"yFpVnDwGZ5HovG5JMoM2","title":"isUserInAnyRoles()","pathname":"/magicjs/api-references/backend/utils/isuserinanyroles","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]},{"id":"tA0CBOuRrlsPArPw18j0","title":"assignRoleToUser()","pathname":"/magicjs/api-references/backend/utils/assignroletouser-1","siteSpaceId":"sitesp_CHISV","breadcrumbs":[{"label":"API References"},{"label":"Backend"},{"label":"utils"}]}]}