TOOLS: AUTO and MONOCHROME come with any account, FIX and GRADIENT MASK stay PRO and answer with the reason
This commit is contained in:
+38
-26
@@ -2815,38 +2815,50 @@ export function Workspace() {
|
||||
//
|
||||
// Nothing here is a knob, so the tab is this row alone: the strip a chip
|
||||
// opens is the last column's (see stripChips), the same as anywhere else.
|
||||
// The whole tab is PRO — the four write to the frame as the phone's own
|
||||
// edition does — so a basic account is offered the reason instead.
|
||||
if (!pro) return [{ key: 'tools-pro', label: t('pro.toolsChip'), pro: true, onClick: promptPro }];
|
||||
// AUTO and MONOCHROME come with any account — one lands a set of numbers
|
||||
// on the frame, the other swaps the stock for the mono one. FIX and
|
||||
// GRADIENT MASK take the pointer on the frame the way the phone's own
|
||||
// edition does, and those two are PRO: a basic account is offered the
|
||||
// reason in their place, so the row keeps its four marks either way.
|
||||
const locked = (key: string, label: string): ChipDef => ({
|
||||
key: `${key}-pro`,
|
||||
label,
|
||||
pro: true,
|
||||
onClick: promptPro,
|
||||
});
|
||||
return [
|
||||
{ key: 'auto', label: '✦ AUTO', onClick: () => void autoTune() },
|
||||
// FX's tools are not looks: each is a strip of its own, opened from the
|
||||
// row. FIX repairs a speck of dust, MOSAIC hides a patch, GRADIENT MASK
|
||||
// draws a shape; the strip's own chip carries the name and glows amber
|
||||
// while there is something inside it to clear.
|
||||
{
|
||||
key: 'fix',
|
||||
label: '✚ FIX',
|
||||
active: openGroup === 'fix',
|
||||
amberValue: healSpots.length > 0 || mosaicSpots.length > 0,
|
||||
onClick: () => {
|
||||
// The tools that take the pointer on the photo never share it.
|
||||
setPicking(false);
|
||||
setBrushTool(null);
|
||||
toggleGroup('fix');
|
||||
},
|
||||
},
|
||||
{
|
||||
key: 'gradient-mask',
|
||||
label: '▚ GRADIENT MASK',
|
||||
active: openGroup === 'gradient',
|
||||
amberValue: masks.length > 0,
|
||||
onClick: () => {
|
||||
setPicking(false);
|
||||
setBrushTool(null);
|
||||
toggleGroup('gradient');
|
||||
},
|
||||
},
|
||||
pro
|
||||
? {
|
||||
key: 'fix',
|
||||
label: '✚ FIX',
|
||||
active: openGroup === 'fix',
|
||||
amberValue: healSpots.length > 0 || mosaicSpots.length > 0,
|
||||
onClick: () => {
|
||||
// The tools that take the pointer on the photo never share it.
|
||||
setPicking(false);
|
||||
setBrushTool(null);
|
||||
toggleGroup('fix');
|
||||
},
|
||||
}
|
||||
: locked('fix', t('pro.fixChip')),
|
||||
pro
|
||||
? {
|
||||
key: 'gradient-mask',
|
||||
label: '▚ GRADIENT MASK',
|
||||
active: openGroup === 'gradient',
|
||||
amberValue: masks.length > 0,
|
||||
onClick: () => {
|
||||
setPicking(false);
|
||||
setBrushTool(null);
|
||||
toggleGroup('gradient');
|
||||
},
|
||||
}
|
||||
: locked('gradient-mask', t('pro.gradientChip')),
|
||||
{ key: 'mono', label: '◑ MONOCHROME', active: monoOn, onClick: toggleMono },
|
||||
];
|
||||
case 'hsl': {
|
||||
|
||||
@@ -154,7 +154,8 @@ export const en: Dict = {
|
||||
// bar), one reason per locked tab (the chips), and one answer for a click on
|
||||
// either of them.
|
||||
'pro.hslChip': 'HSL IS A PRO FEATURE',
|
||||
'pro.toolsChip': 'TOOLS & GRADIENT MASK ARE PRO FEATURES',
|
||||
'pro.fixChip': 'FIX IS A PRO FEATURE',
|
||||
'pro.gradientChip': 'GRADIENT MASK IS A PRO FEATURE',
|
||||
'pro.basicBar': 'Account {email} is on the basic tier — PRO features need an account the operator has activated.',
|
||||
'pro.locked': 'PRO feature — this account has not been activated. Ask the operator to tick "Activated Pro".',
|
||||
'pro.resend': 'RESEND VERIFICATION EMAIL',
|
||||
|
||||
@@ -167,7 +167,8 @@ export const vi = {
|
||||
// bar), one reason per locked tab (the chips), and one answer for a click on
|
||||
// either of them.
|
||||
'pro.hslChip': 'HSL LÀ TÍNH NĂNG PRO',
|
||||
'pro.toolsChip': 'TOOLS & GRADIENT MASK LÀ TÍNH NĂNG PRO',
|
||||
'pro.fixChip': 'FIX LÀ TÍNH NĂNG PRO',
|
||||
'pro.gradientChip': 'GRADIENT MASK LÀ TÍNH NĂNG PRO',
|
||||
'pro.basicBar': 'Tài khoản {email} đang ở bản cơ bản — tính năng PRO cần tài khoản được kích hoạt.',
|
||||
'pro.locked': 'Tính năng PRO — tài khoản chưa được kích hoạt. Nhờ quản trị viên tích "Kích hoạt PRO".',
|
||||
'pro.resend': 'GỬI LẠI EMAIL XÁC THỰC',
|
||||
|
||||
Reference in New Issue
Block a user