Files
standardnotes-app-web/app/assets/javascripts/components/ComponentView/IsExpired.tsx
Mo ebdae31965 feat: component viewer (#781)
* wip: component viewer

* feat: get component status from component viewer

* fix: remove unused property

* chore(deps): snjs 2.29.0

* fix: import location
2021-12-24 10:41:02 -06:00

68 lines
1.9 KiB
TypeScript

import { FeatureStatus } from '@standardnotes/snjs';
import { FunctionalComponent } from 'preact';
interface IProps {
expiredDate: string;
componentName: string;
featureStatus: FeatureStatus;
manageSubscription: () => void;
}
const statusString = (
featureStatus: FeatureStatus,
expiredDate: string,
componentName: string
) => {
switch (featureStatus) {
case FeatureStatus.InCurrentPlanButExpired:
return `Your subscription expired on ${expiredDate}`;
case FeatureStatus.NoUserSubscription:
return `You do not have an active subscription`;
case FeatureStatus.NotInCurrentPlan:
return `Please upgrade your plan to access ${componentName}`;
default:
return `${componentName} is valid and you should not be seeing this message`;
}
};
export const IsExpired: FunctionalComponent<IProps> = ({
expiredDate,
featureStatus,
componentName,
manageSubscription,
}) => {
return (
<div className={'sn-component'}>
<div className={'sk-app-bar no-edges no-top-edge dynamic-height'}>
<div className={'left'}>
<div className={'sk-app-bar-item'}>
<div className={'sk-app-bar-item-column'}>
<div className={'sk-circle danger small'} />
</div>
<div className={'sk-app-bar-item-column'}>
<div>
<strong>
{statusString(featureStatus, expiredDate, componentName)}
</strong>
<div className={'sk-p'}>
{componentName} is in a read-only state.
</div>
</div>
</div>
</div>
</div>
<div className={'right'}>
<div
className={'sk-app-bar-item'}
onClick={() => manageSubscription()}
>
<button className={'sn-button small success'}>
Manage Subscription
</button>
</div>
</div>
</div>
</div>
);
};