* feat: add tag folders support basics * feat: add draggability to tags * feat: add drag & drop draft * feat: fold folders * fix: do not select on fold / unfold tags * style: clean the isValidTag call * feat: add native folder toggle * feat: add touch mobile support * ui: add nicer design & icons * style: render full-width tag items * feat: nicer looking dropzone * style: fix arguments * fix: tag template rendering in list items * feat: tag can be dragged over the whole item * fix: cancel / reset title after save * fix: disable drag completely when needed * fix: invalid tag parents * feat: add paying feature * feat: with paid feature tooltip * feat: tag has a plus feature * feat: add premium modal * style: simplif code * refactor: extract feature_state & simplif code * fix: icons and icons svg * style: remove comment * feat: tag folders naming * feat: use the feature notification * fix: tag folders copy * style: variable names * style: remove & clean comments * refactor: remove is-mobile library * feat: tags folder experimental (#10) * feat: hide native folders behind experimental flag * fix: better tags resizing * fix: merge global window * style: rename params * refactor: remove level of indirection in feature toggle * feat: recursively add tags to note on create (#9) * fix: use add tags folder hierarchy & isTemplateItem (#13) * fix: use new snjs add tag hierarchy * fix: use new snjs isTemplateItem * feat: tags folder premium (#774) * feat: upgrade premium in tags section refactor: move TagsSection to react feat: show premium on Tag section feat: keep drag and drop features always active fix: drag & drop tweak with premium feat: premium messages fix: remove fill in svg icons fix: change tag list color (temporary) style: remove dead code refactor: clarify names and modules fix: draggable behind feature toggle feat: add button in TagSection & design * feat: fix features loading with app state (#775) * fix: distinguish between app launch and start * fix: update state for footer too * fix: wait for application launch event Co-authored-by: Laurent Senta <laurent@singulargarden.com> * feat: tags folder with folder text design (#776) * feat: add folder text * fix: sn stylekit colors * fix: root drop zone * chore: upgrade stylekit * fix: hide dropzone when feature is disabled * chore: bump versions now that they are released Co-authored-by: Mo <me@bitar.io> * feat: tags folder design review (#785) * fix: upgrade design after review * fix: tweak dropzone * fix: sync after assign parent * fix: tsc error on build * fix: vertical center the fold arrows * fix: define our own hoist for react-dnd * feat: hide fold when there are no folders * fix: show children usability + resize UI * fix: use old colors for now, theme compat * fix: tweak alignment and add title * fix: meta offset with folders * fix: tweak tag size * fix: observable setup * fix: use link-off icon on dropzone * fix: more tweak on text sizes Co-authored-by: Mo <me@bitar.io>
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
import { WebApplication } from '@/ui_models/application';
|
|
import { AppState } from '@/ui_models/app_state';
|
|
import { PurchaseFlowPane } from '@/ui_models/app_state/purchase_flow_state';
|
|
import { observer } from 'mobx-react-lite';
|
|
import { FunctionComponent } from 'preact';
|
|
import { CreateAccount } from './panes/CreateAccount';
|
|
import { SignIn } from './panes/SignIn';
|
|
import SNLogoFull from '../../svg/ic-sn-logo-full.svg';
|
|
|
|
type PaneSelectorProps = {
|
|
currentPane: PurchaseFlowPane;
|
|
} & PurchaseFlowViewProps;
|
|
|
|
type PurchaseFlowViewProps = {
|
|
appState: AppState;
|
|
application: WebApplication;
|
|
};
|
|
|
|
const PurchaseFlowPaneSelector: FunctionComponent<PaneSelectorProps> = ({
|
|
currentPane,
|
|
appState,
|
|
application,
|
|
}) => {
|
|
switch (currentPane) {
|
|
case PurchaseFlowPane.CreateAccount:
|
|
return <CreateAccount appState={appState} application={application} />;
|
|
case PurchaseFlowPane.SignIn:
|
|
return <SignIn appState={appState} application={application} />;
|
|
}
|
|
};
|
|
|
|
export const PurchaseFlowView: FunctionComponent<PurchaseFlowViewProps> =
|
|
observer(({ appState, application }) => {
|
|
const { currentPane } = appState.purchaseFlow;
|
|
|
|
return (
|
|
<div className="flex items-center justify-center overflow-hidden h-full w-full absolute top-left-0 z-index-purchase-flow bg-grey-super-light">
|
|
<div className="relative fit-content">
|
|
<div className="relative p-12 xs:px-8 mb-4 bg-default border-1 border-solid border-main rounded xs:rounded-0">
|
|
<SNLogoFull className="mb-5" />
|
|
<PurchaseFlowPaneSelector
|
|
currentPane={currentPane}
|
|
appState={appState}
|
|
application={application}
|
|
/>
|
|
</div>
|
|
<div className="flex justify-end xs:px-4">
|
|
<a
|
|
className="mr-3 font-medium color-grey-1"
|
|
href="https://standardnotes.com/privacy"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
Privacy
|
|
</a>
|
|
<a
|
|
className="font-medium color-grey-1"
|
|
href="https://standardnotes.com/help"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
Help
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
});
|