@knapsack/app
Version:
Build Design Systems on top of knapsack, by Basalt
2 lines • 7.08 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([["settings-wqv58~21833f8f"],{"./src/client/components/inline-edit.scss":function(e,t,s){},"./src/client/components/inline-edit.tsx":function(e,t,s){s.d(t,"a",(function(){return InlineEditText}));var n=s("../node_modules/@babel/runtime/helpers/esm/extends.js"),a=s("react"),r=s.n(a),i=s("../design-system/dist/ks-design-system.js"),c=s("../node_modules/classnames/index.js"),o=s.n(c),l=(s("./src/client/components/inline-edit.scss"),s("./src/client/store/index.ts")),InlineEditTextBase=e=>{var{text:t,isHeading:s,showControls:n=!1,handleSave:c,canEdit:l,noWrap:d=!1}=e,[p,u]=Object(a.useState)(!1),m=Object(a.useRef)();if(!l)return r.a.createElement("span",null,t);var handleTargetFocus=()=>{p?(u(!1),m.current.textContent=t,setTimeout(()=>{window.getSelection().removeAllRanges()},0)):(u(!0),setTimeout(()=>{m.current.focus();var e=document.createRange();e.selectNodeContents(m.current);var t=window.getSelection();t.removeAllRanges(),t.addRange(e)},0))},handleControlTrigger=()=>{p&&c(m.current.textContent),handleTargetFocus()},g=o()({"ks-inline-edit":!0,"ks-inline-edit--visible":n,"ks-inline-edit--editing":p,"ks-inline-edit--no-wrap":d}),h=p?"save":"edit-text";return r.a.createElement("span",{className:g},r.a.createElement("span",{className:"ks-inline-edit__text",ref:m,contentEditable:p,suppressContentEditableWarning:p,role:"textbox",onKeyDown:e=>{13===e.which&&handleControlTrigger(),27===e.which&&handleTargetFocus()}},t),n&&r.a.createElement("span",{className:"ks-inline-edit__controls"},"save"===h&&r.a.createElement(i.l,{size:s?"m":"s",icon:"close",kind:"icon",flush:!0,emphasis:"danger",handleTrigger:handleTargetFocus},"close"),r.a.createElement(i.l,{size:s?"m":"s",icon:h,kind:"icon",flush:!0,handleTrigger:handleControlTrigger},h)))},InlineEditText=e=>{var t=Object(l.useSelector)(e=>e.userState.canEdit);return r.a.createElement(InlineEditTextBase,Object(n.a)({},e,{canEdit:t,showControls:t}))}},"./src/client/components/page-header.scss":function(e,t,s){},"./src/client/components/page-header.tsx":function(e,t,s){s.d(t,"a",(function(){return d}));var n=s("react"),a=s.n(n),r=s("../node_modules/classnames/index.js"),i=s.n(r),c=s("../design-system/dist/ks-design-system.js"),o=s("./src/client/store/index.ts"),l=s("./src/client/components/inline-edit.tsx"),d=(s("./src/client/components/page-header.scss"),e=>{var{section:t,title:s,handleEditTitle:n,description:r,handleEditDescription:d,constrained:p=!1,flush:u=!1}=e,m=Object(o.useSelector)(e=>e.ui.status),g=Object(o.useDispatch)();if(!t&&!s)return null;var h=i()("ks-page-header",{"ks-page-header--constrained":p,"ks-page-header--flush":u});return a.a.createElement("header",{className:h},a.a.createElement("div",{className:"ks-page-header__content-wrap"},t&&a.a.createElement("p",{className:"ks-page-header__section"},t),a.a.createElement("h2",{className:"ks-page-header__title"},n?a.a.createElement(l.a,{text:s,isHeading:!0,handleSave:n}):a.a.createElement("span",null,s)),d&&a.a.createElement("p",{className:"ks-page-header__description"},a.a.createElement(l.a,{text:r,handleSave:d})),r&&!d?a.a.createElement("p",{className:"ks-page-header__description"},r):"",m&&a.a.createElement("div",{className:"ks-page-header__status"},a.a.createElement(c.C,{type:m.type,message:m.message,handleClose:()=>g(Object(o.removeStatus)())}))))})},"./src/client/components/tabs.scss":function(e,t,s){},"./src/client/pages/settings.scss":function(e,t,s){},"./src/client/pages/settings.tsx":function(e,t,s){s.r(t);var n=s("react"),a=s.n(n),r=s("../node_modules/react-router/esm/react-router.js"),i=(s("./src/client/components/tabs.scss"),s("../node_modules/semantic-ui-react/dist/es/modules/Tab/Tab.js")),c=s("../node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("../design-system/dist/ks-design-system.js"),l=s("./src/client/store/index.ts"),d={description:"Knapsack Settings",type:"object",properties:{title:{description:"The title of the site",type:"string"},subtitle:{description:"Site subtitle",type:"string"},slogan:{type:"string"},parentBrand:{description:"Settings related to the parent brand that owns/uses the design system",type:"object",properties:{title:{description:"Title/name of the parent brand",type:"string"},homepage:{description:"URI of homepage of parent brand",type:"string"},logo:{description:"URI of image file for brand logo",type:"string"}},additionalProperties:!1}},additionalProperties:!1,required:["title"],$schema:"http://json-schema.org/draft-07/schema#"};function ownKeys(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,n)}return s}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(s),!0).forEach((function(t){Object(c.a)(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ownKeys(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var SiteSettings=()=>{var e=Object(l.useSelector)(e=>e.settingsState.settings),t=Object(l.useDispatch)(),[s,r]=Object(n.useState)();return Object(n.useEffect)(()=>{var t;(null===(t=e.parentBrand)||void 0===t?void 0:t.logo)?fetch(e.parentBrand.logo).then(e=>e.blob()).then(t=>{var s=new FileReader;s.readAsDataURL(t),s.onloadend=()=>{var t=s.result;r(_objectSpread({},e,{parentBrand:_objectSpread({},e.parentBrand,{logo:t})}))}}):r(e)},[]),s?a.a.createElement(o.y,{schema:d,formData:s,onSubmit:e=>{var{formData:s}=e;t(Object(l.updateSettings)(s)),t(Object(l.setStatus)({type:"success",message:"Settings updated",dismissAfter:2}))},hasSubmit:!0,uiSchema:{parentBrand:{logo:{}},customSections:{"ui:detailsOpen":!0,items:{classNames:"ks-rjsf-custom-object-grid-3","ui:help":'Page will get url in form of "/SECTION_ID/PAGE_ID". It is your responsibility to ensure it is unique and does not conflict with any other page.',id:{"ui:help":"Must be lowercase with hyphens and no spaces"},pages:{items:{classNames:"ks-rjsf-custom-object-grid-2",id:{"ui:help":"Must be lowercase with hyphens and no spaces"}}}}}}}):a.a.createElement(o.e,null)},p=s("./src/client/layouts/page-with-sidebar.tsx"),u=s("./src/client/components/page-header.tsx");s("./src/client/pages/settings.scss"),t.default=e=>{var{initialTab:t=""}=e,s=Object(r.g)(),n=[{render:()=>a.a.createElement(SiteSettings,null),menuItem:"Site"}],c=n.reduce((e,s,n)=>s.menuItem.toLowerCase()===t.toLowerCase().replace(/-/g," ")?n:e,0);return a.a.createElement(p.default,null,a.a.createElement(u.a,{title:"Settings",section:"Configuration"}),a.a.createElement("div",{className:"ks-settings"},a.a.createElement(i.a,{defaultActiveIndex:c,as:"section",menu:{pointing:!0},panes:n,onTabChange:(e,t)=>{var a=n[t.activeIndex].menuItem.toLowerCase().replace(/ /g,"-");s.push("/settings/".concat(a))}}),a.a.createElement("hr",null)))}}}]);
//# sourceMappingURL=settings-wqv58~21833f8f.chunk.eaa5497fb7f7db0479e3.js.map