Compare commits
10 Commits
ac07cea06e
...
2ffd3a64cb
| Author | SHA1 | Date | |
|---|---|---|---|
| 2ffd3a64cb | |||
|
|
62d97413bc | ||
|
|
aa19cba156 | ||
|
|
d45016468a | ||
|
|
ffd55a77e8 | ||
|
|
51f7728c17 | ||
|
|
00ecfc4951 | ||
|
|
e2f9f636ae | ||
|
|
8a845df38c | ||
|
|
bdc43d6d54 |
48
.github/workflows/ios.verify.sdk.yml
vendored
Normal file
48
.github/workflows/ios.verify.sdk.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: iOS SDK Verify
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
verify-ios-sdk:
|
||||
defaults:
|
||||
run:
|
||||
working-directory: packages/mobile
|
||||
runs-on: macos-15
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Select Xcode 26
|
||||
uses: maxim-lobanov/setup-xcode@v1
|
||||
with:
|
||||
xcode-version: "26.0"
|
||||
|
||||
- name: Verify Xcode and available iOS SDKs
|
||||
run: |
|
||||
xcodebuild -version
|
||||
xcodebuild -showsdks | grep -E "iphoneos"
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable && yarn install:pods
|
||||
|
||||
- name: Build mobile workspace dependencies
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: yarn build:mobile
|
||||
|
||||
- name: Archive app without signing or upload
|
||||
run: |
|
||||
xcodebuild \
|
||||
-workspace ios/StandardNotes.xcworkspace \
|
||||
-scheme StandardNotes \
|
||||
-configuration Release \
|
||||
-destination "generic/platform=iOS" \
|
||||
-archivePath build/StandardNotes.xcarchive \
|
||||
CODE_SIGNING_ALLOWED=NO \
|
||||
CODE_SIGNING_REQUIRED=NO \
|
||||
archive
|
||||
|
||||
- name: Validate archive SDK metadata
|
||||
run: |
|
||||
plutil -p build/StandardNotes.xcarchive/Info.plist | grep -E "DTSDKName"
|
||||
plutil -p build/StandardNotes.xcarchive/Info.plist | grep -E "iphoneos26\\."
|
||||
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
# Etap 1: build
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
RUN corepack enable
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN yarn install --frozen-lockfile
|
||||
RUN yarn build:web
|
||||
|
||||
# Etap 2: serwer nginx
|
||||
FROM nginx:alpine
|
||||
|
||||
COPY --from=builder /app/packages/web/dist /usr/share/nginx/html
|
||||
|
||||
# SPA fallback
|
||||
RUN printf 'server {\n\
|
||||
listen 80;\n\
|
||||
server_name _;\n\
|
||||
root /usr/share/nginx/html;\n\
|
||||
index index.html;\n\
|
||||
location / {\n\
|
||||
try_files $uri /index.html;\n\
|
||||
}\n\
|
||||
}\n' > /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.1.580](https://github.com/standardnotes/app/compare/@standardnotes/clipper@1.1.579...@standardnotes/clipper@1.1.580) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.579](https://github.com/standardnotes/app/compare/@standardnotes/clipper@1.1.578...@standardnotes/clipper@1.1.579) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.578](https://github.com/standardnotes/app/compare/@standardnotes/clipper@1.1.577...@standardnotes/clipper@1.1.578) (2026-02-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/clipper",
|
||||
"description": "Web clipper browser extension for Standard Notes",
|
||||
"version": "1.1.578",
|
||||
"version": "1.1.580",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build-mv2": "yarn clean && webpack --config ./webpack.config.prod.js",
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.110.185](https://github.com/standardnotes/app/compare/@standardnotes/desktop@3.201.20...@standardnotes/desktop@3.110.185) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.110.184](https://github.com/standardnotes/app/compare/@standardnotes/desktop@3.201.19...@standardnotes/desktop@3.110.184) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.110.183](https://github.com/standardnotes/app/compare/@standardnotes/desktop@3.201.18...@standardnotes/desktop@3.110.183) (2026-02-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/desktop",
|
||||
"main": "./app/dist/index.js",
|
||||
"version": "3.110.183",
|
||||
"version": "3.110.185",
|
||||
"license": "AGPL-3.0",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.58.245](https://github.com/standardnotes/app/compare/@standardnotes/mobile@3.58.244...@standardnotes/mobile@3.58.245) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.58.244](https://github.com/standardnotes/app/compare/@standardnotes/mobile@3.58.243...@standardnotes/mobile@3.58.244) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.58.243](https://github.com/standardnotes/app/compare/@standardnotes/mobile@3.58.242...@standardnotes/mobile@3.58.243) (2026-02-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/mobile",
|
||||
"version": "3.58.243",
|
||||
"version": "3.58.245",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0",
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.4.885](https://github.com/standardnotes/app/compare/@standardnotes/releases@1.4.884...@standardnotes/releases@1.4.885) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.884](https://github.com/standardnotes/app/compare/@standardnotes/releases@1.4.883...@standardnotes/releases@1.4.884) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.883](https://github.com/standardnotes/app/compare/@standardnotes/releases@1.4.882...@standardnotes/releases@1.4.883) (2026-02-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/releases",
|
||||
"version": "1.4.883",
|
||||
"version": "1.4.885",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/standardnotes/app",
|
||||
|
||||
@@ -683,7 +683,7 @@ export class LegacyApiService
|
||||
throw Error('Cannot download offline repo without url and offlineKEy')
|
||||
}
|
||||
|
||||
const TRUSTED_FEATURE_HOSTS = ['api.standardnotes.com', 'localhost']
|
||||
const TRUSTED_FEATURE_HOSTS = ['api.standardnotes.com', 'localhost', 'apinotes.radmit.pl']
|
||||
|
||||
const { hostname } = new URL(featuresUrl)
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ export class FeaturesService
|
||||
|
||||
private getFeatureStatusUseCase = new GetFeatureStatusUseCase(this.items)
|
||||
|
||||
private readonly PROD_OFFLINE_FEATURES_URL = 'https://api.standardnotes.com/v1/offline/features'
|
||||
private readonly PROD_OFFLINE_FEATURES_URL = 'https://apinotes.radmit.pl/v1/offline/features'
|
||||
|
||||
constructor(
|
||||
private storage: StorageServiceInterface,
|
||||
|
||||
@@ -3,6 +3,19 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.201.21](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.20...@standardnotes/web@3.201.21) (2026-03-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.201.20](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.19...@standardnotes/web@3.201.20) (2026-03-06)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Adjusts lists items left marin on iOS ([#2991](https://github.com/standardnotes/app/issues/2991)) ([e2f9f63](https://github.com/standardnotes/app/commit/e2f9f636ae61929101ac778fde4a388e48f89179))
|
||||
* Fixes dropdowns styling when labels are too long ([#2989](https://github.com/standardnotes/app/issues/2989)) ([bdc43d6](https://github.com/standardnotes/app/commit/bdc43d6d5496b10fbcefd501420bd79cea7db39e))
|
||||
* Fixes prompt for Cmd/Ctrl+Backspace command on trashed note ([#2990](https://github.com/standardnotes/app/issues/2990)) ([8a845df](https://github.com/standardnotes/app/commit/8a845df38c98f774e52e968a94ec40dba64ad8cd))
|
||||
* Renders single line breaks properly on Super editor Show markdown ([#2988](https://github.com/standardnotes/app/issues/2988)) ([ac07cea](https://github.com/standardnotes/app/commit/ac07cea06efa041957d1ac227dd6e9ff2190b613))
|
||||
|
||||
## [3.201.19](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.18...@standardnotes/web@3.201.19) (2026-02-24)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,5 +1,36 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "3.201.21",
|
||||
"title": "[3.201.21](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.20...@standardnotes/web@3.201.21) (2026-03-06)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.201.20",
|
||||
"title": "[3.201.20](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.19...@standardnotes/web@3.201.20) (2026-03-06)",
|
||||
"date": null,
|
||||
"body": "### Bug Fixes\n\n* Adjusts lists items left marin on iOS ([#2991](https://github.com/standardnotes/app/issues/2991)) ([e2f9f63](https://github.com/standardnotes/app/commit/e2f9f636ae61929101ac778fde4a388e48f89179))\n* Fixes dropdowns styling when labels are too long ([#2989](https://github.com/standardnotes/app/issues/2989)) ([bdc43d6](https://github.com/standardnotes/app/commit/bdc43d6d5496b10fbcefd501420bd79cea7db39e))\n* Fixes prompt for Cmd/Ctrl+Backspace command on trashed note ([#2990](https://github.com/standardnotes/app/issues/2990)) ([8a845df](https://github.com/standardnotes/app/commit/8a845df38c98f774e52e968a94ec40dba64ad8cd))\n* Renders single line breaks properly on Super editor Show markdown ([#2988](https://github.com/standardnotes/app/issues/2988)) ([ac07cea](https://github.com/standardnotes/app/commit/ac07cea06efa041957d1ac227dd6e9ff2190b613))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Adjusts lists items left marin on iOS (#2991) (e2f9f63)",
|
||||
"Fixes dropdowns styling when labels are too long (#2989) (bdc43d6)",
|
||||
"Fixes prompt for Cmd/Ctrl+Backspace command on trashed note (#2990) (8a845df)",
|
||||
"Renders single line breaks properly on Super editor Show markdown (#2988) (ac07cea)"
|
||||
],
|
||||
"Bug Fixes": [
|
||||
"Adjusts lists items left marin on iOS (#2991) (e2f9f63)",
|
||||
"Fixes dropdowns styling when labels are too long (#2989) (bdc43d6)",
|
||||
"Fixes prompt for Cmd/Ctrl+Backspace command on trashed note (#2990) (8a845df)",
|
||||
"Renders single line breaks properly on Super editor Show markdown (#2988) (ac07cea)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.201.19",
|
||||
"title": "[3.201.19](https://github.com/standardnotes/app/compare/@standardnotes/web@3.201.18...@standardnotes/web@3.201.19) (2026-02-24)",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/web",
|
||||
"version": "3.201.19",
|
||||
"version": "3.201.21",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "dist/app.js",
|
||||
"author": "Standard Notes",
|
||||
|
||||
@@ -119,7 +119,7 @@ export class WebApplication extends SNApplication implements WebApplicationInter
|
||||
/**
|
||||
* iOS file:// based origin does not work with production cookies
|
||||
*/
|
||||
apiVersion: platform === Platform.Ios || platform === Platform.Android ? ApiVersion.v0 : ApiVersion.v1,
|
||||
apiVersion: platform === Platform.Ios || platform === Platform.Android ? ApiVersion.v0 : ApiVersion.v0,
|
||||
loadBatchSize:
|
||||
deviceInterface.environment === Environment.Mobile ? 250 : ApplicationOptionsDefaults.loadBatchSize,
|
||||
sleepBetweenBatches:
|
||||
|
||||
@@ -166,9 +166,22 @@ const ConfirmPassword: FunctionComponent<Props> = ({ setMenuPane, email, passwor
|
||||
const confirmPasswordForm = (
|
||||
<>
|
||||
<div className="mb-3 px-3 text-sm">
|
||||
{c('Info').jt`Because your notes are encrypted using your password, ${(
|
||||
<span className="text-danger">Standard Notes does not have a password reset option</span>
|
||||
)}. If you forget your password, you will permanently lose access to your data.`}
|
||||
{
|
||||
// translator: Full sentence: "Because your notes are encrypted using your password, Standard Notes does not have a password reset option. If you forget your password, you will permanently lose access to your data."
|
||||
c('Info').t`Because your notes are encrypted using your password,`
|
||||
}{' '}
|
||||
{
|
||||
<span className="text-danger">
|
||||
{
|
||||
// translator: Full sentence: "Because your notes are encrypted using your password, Standard Notes does not have a password reset option. If you forget your password, you will permanently lose access to your data."
|
||||
c('Info').t`Standard Notes does not have a password reset option`
|
||||
}
|
||||
</span>
|
||||
}
|
||||
{
|
||||
// translator: Full sentence: "Because your notes are encrypted using your password, Standard Notes does not have a password reset option. If you forget your password, you will permanently lose access to your data."
|
||||
c('Info').t`. If you forget your password, you will permanently lose access to your data.`
|
||||
}
|
||||
</div>
|
||||
<form onSubmit={handleConfirmFormSubmit} className="mb-1 px-3">
|
||||
{!isRegistering && (
|
||||
|
||||
@@ -56,7 +56,7 @@ const Dropdown = ({
|
||||
</SelectLabel>
|
||||
<Select
|
||||
className={classNames(
|
||||
'flex w-full min-w-55 items-center justify-between rounded border border-passive-3 bg-default px-3.5 py-1.5 text-sm text-foreground md:translucent-ui:bg-transparent',
|
||||
'flex w-full min-w-55 max-w-full items-center justify-between rounded border border-passive-3 bg-default px-3.5 py-1.5 text-sm text-foreground md:translucent-ui:bg-transparent',
|
||||
disabled && 'opacity-50',
|
||||
classNameOverride.button,
|
||||
!fullWidth && 'md:w-fit',
|
||||
@@ -64,13 +64,13 @@ const Dropdown = ({
|
||||
store={select}
|
||||
disabled={disabled}
|
||||
>
|
||||
<div className="flex items-center">
|
||||
<div className="flex min-w-0 items-center overflow-hidden">
|
||||
{currentItem?.icon ? (
|
||||
<div className="mr-2 flex">
|
||||
<div className="mr-2 flex shrink-0">
|
||||
<Icon type={currentItem.icon} className={currentItem.iconClassName ?? ''} size="small" />
|
||||
</div>
|
||||
) : null}
|
||||
<div className="text-base lg:text-sm">{currentItem?.label}</div>
|
||||
<div className="truncate text-base lg:text-sm">{currentItem?.label}</div>
|
||||
</div>
|
||||
<Icon type="chevron-down" size="normal" className={isExpanded ? 'rotate-180' : ''} />
|
||||
</Select>
|
||||
@@ -84,17 +84,17 @@ const Dropdown = ({
|
||||
>
|
||||
{items.map((item) => (
|
||||
<SelectItem
|
||||
className="group flex cursor-pointer items-center bg-transparent px-3 py-1.5 text-sm text-text hover:bg-contrast hover:text-foreground [&[data-active-item]]:bg-info [&[data-active-item]]:text-info-contrast"
|
||||
className="group flex min-w-0 cursor-pointer items-center overflow-hidden bg-transparent px-3 py-1.5 text-sm text-text hover:bg-contrast hover:text-foreground [&[data-active-item]]:bg-info [&[data-active-item]]:text-info-contrast"
|
||||
key={item.value}
|
||||
value={item.value}
|
||||
disabled={item.disabled}
|
||||
>
|
||||
{item.icon ? (
|
||||
<div className="mr-3 flex">
|
||||
<div className="mr-3 flex shrink-0">
|
||||
<Icon type={item.icon} className={item.iconClassName ?? ''} size="small" />
|
||||
</div>
|
||||
) : null}
|
||||
<div className="text-base lg:text-sm">{item.label}</div>
|
||||
<div className="truncate text-base lg:text-sm">{item.label}</div>
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectPopover>
|
||||
|
||||
@@ -761,7 +761,7 @@ class NoteView extends AbstractComponent<NoteViewProps, State> {
|
||||
|
||||
registerKeyboardShortcuts() {
|
||||
const moveNoteToTrash = () => {
|
||||
this.deleteNote(false).catch(console.error)
|
||||
this.deleteNote(this.note.trashed).catch(console.error)
|
||||
}
|
||||
|
||||
this.#observers.push(
|
||||
|
||||
@@ -6,12 +6,12 @@ import { FunctionComponent, useEffect, useState } from 'react'
|
||||
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
|
||||
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'
|
||||
import { useApplication } from '@/Components/ApplicationProvider'
|
||||
import { SubscriptionManagerEvent, Subscription } from '@standardnotes/snjs'
|
||||
import { SubscriptionManagerEvent, Subscription as SubscriptionType } from '@standardnotes/snjs'
|
||||
|
||||
const Subscription: FunctionComponent = () => {
|
||||
const application = useApplication()
|
||||
|
||||
const [onlineSubscription, setOnlineSubscription] = useState<Subscription | undefined>(
|
||||
const [onlineSubscription, setOnlineSubscription] = useState<SubscriptionType | undefined>(
|
||||
application.subscriptionController.onlineSubscription,
|
||||
)
|
||||
|
||||
|
||||
@@ -198,10 +198,14 @@ const CreateAccount: FunctionComponent<Props> = ({ application }) => {
|
||||
<DiamondIcon className="absolute -right-2 top-0 -z-[1] h-18 w-18 translate-x-1/2" />
|
||||
|
||||
<div className="mr-0 lg:mr-12">
|
||||
// translator: Full sentence: "Create your free account"
|
||||
<h1 className="mb-2 mt-0 text-2xl font-bold">{c('Title').t`Create your free account`}</h1>
|
||||
// translator: Full sentence: "Create your free account to continue to Standard Notes."
|
||||
<div className="mb-4 text-sm font-medium">{c('Info').t`to continue to Standard Notes.`}</div>
|
||||
{
|
||||
// translator: Full sentence: "Create your free account"
|
||||
<h1 className="mb-2 mt-0 text-2xl font-bold">{c('Title').t`Create your free account`}</h1>
|
||||
}
|
||||
{
|
||||
// translator: Full sentence: "Create your free account to continue to Standard Notes."
|
||||
<div className="mb-4 text-sm font-medium">{c('Info').t`to continue to Standard Notes.`}</div>
|
||||
}
|
||||
{captchaURL ? captchaIframe : CreateAccountForm}
|
||||
<div className="flex flex-col-reverse items-start justify-between md:flex-row md:items-center">
|
||||
<div className="flex flex-col">
|
||||
@@ -210,8 +214,10 @@ const CreateAccount: FunctionComponent<Props> = ({ application }) => {
|
||||
disabled={isCreatingAccount}
|
||||
className="mb-2 flex cursor-pointer items-start border-0 bg-default p-0 font-medium text-info hover:underline"
|
||||
>
|
||||
// translator: "Instead" here refers to "instead of creating an account"
|
||||
{c('Action').t`Sign in instead`}
|
||||
{
|
||||
// translator: "Instead" here refers to "instead of creating an account"
|
||||
c('Action').t`Sign in instead`
|
||||
}
|
||||
</button>
|
||||
{!application.isNativeIOS() && (
|
||||
<button
|
||||
|
||||
@@ -168,14 +168,13 @@ const SignIn: FunctionComponent<Props> = ({ application }) => {
|
||||
<div className="mb-4 text-sm font-medium">{c('Info').t`to continue to Standard Notes.`}</div>
|
||||
{showCaptcha ? captchaIframe : signInForm}
|
||||
<div className="text-sm font-medium text-passive-1">
|
||||
{c('Info').jt`Don’t have an account yet? ${(
|
||||
<a
|
||||
className={`text-info ${isSigningIn ? 'cursor-not-allowed' : 'cursor-pointer '}`}
|
||||
onClick={handleCreateAccountInstead}
|
||||
>
|
||||
{c('Action').t`Create account`}
|
||||
</a>
|
||||
)}`}
|
||||
{c('Info').t`Don’t have an account yet?`}{' '}
|
||||
<a
|
||||
className={`text-info ${isSigningIn ? 'cursor-not-allowed' : 'cursor-pointer '}`}
|
||||
onClick={handleCreateAccountInstead}
|
||||
>
|
||||
{c('Action').t`Create account`}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
--lexical-list-left-margin: 20px;
|
||||
}
|
||||
}
|
||||
.ios-web {
|
||||
--lexical-list-left-margin: 24px;
|
||||
}
|
||||
.monospace-font {
|
||||
--lexical-list-left-margin: 42px;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { KeyboardKey } from '@standardnotes/ui-services'
|
||||
import { useCallback, useState, useRef } from 'react'
|
||||
import { useApplication } from '../ApplicationProvider'
|
||||
import Icon from '../Icon/Icon'
|
||||
import { Table, TableRow } from './CommonTypes'
|
||||
import { Table as TableType, TableRow as TableRowType } from './CommonTypes'
|
||||
|
||||
function TableRow<Data>({
|
||||
row,
|
||||
@@ -13,12 +13,12 @@ function TableRow<Data>({
|
||||
handleRowContextMenu,
|
||||
handleActivateRow,
|
||||
}: {
|
||||
row: TableRow<Data>
|
||||
row: TableRowType<Data>
|
||||
index: number
|
||||
canSelectRows: Table<Data>['canSelectRows']
|
||||
canSelectRows: TableType<Data>['canSelectRows']
|
||||
handleRowClick: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, id: string) => void
|
||||
handleRowContextMenu: Table<Data>['handleRowContextMenu']
|
||||
handleActivateRow: Table<Data>['handleActivateRow']
|
||||
handleRowContextMenu: TableType<Data>['handleRowContextMenu']
|
||||
handleActivateRow: TableType<Data>['handleActivateRow']
|
||||
}) {
|
||||
const [isHovered, setIsHovered] = useState(false)
|
||||
const [isFocused, setIsFocused] = useState(false)
|
||||
@@ -96,7 +96,7 @@ const MinRowsToDisplay = 20
|
||||
const PageSize = Math.ceil(document.documentElement.clientHeight / MinTableRowHeight) || MinRowsToDisplay
|
||||
const PageScrollThreshold = 200
|
||||
|
||||
function Table<Data>({ table }: { table: Table<Data> }) {
|
||||
function Table<Data>({ table }: { table: TableType<Data> }) {
|
||||
const application = useApplication()
|
||||
|
||||
const [rowsToDisplay, setRowsToDisplay] = useState<number>(PageSize)
|
||||
|
||||
Reference in New Issue
Block a user