Compare commits

...
15 changed files with 144 additions and 33 deletions
+8
View File
@@ -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.566](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)
**Note:** Version bump only for package @standardnotes/clipper
## [1.1.565](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)
**Note:** Version bump only for package @standardnotes/clipper
## [1.1.564](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)
**Note:** Version bump only for package @standardnotes/clipper
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@standardnotes/clipper",
"description": "Web clipper browser extension for Standard Notes",
"version": "1.1.564",
"version": "1.1.566",
"private": true,
"scripts": {
"build-mv2": "yarn clean && webpack --config ./webpack.config.prod.js",
+8
View File
@@ -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.171](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)
**Note:** Version bump only for package @standardnotes/desktop
## [3.110.170](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)
**Note:** Version bump only for package @standardnotes/desktop
## [3.110.169](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)
**Note:** Version bump only for package @standardnotes/desktop
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@standardnotes/desktop",
"main": "./app/dist/index.js",
"version": "3.110.169",
"version": "3.110.171",
"license": "AGPL-3.0",
"author": "Standard Notes.",
"private": true,
+10
View File
@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [3.58.230](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)
**Note:** Version bump only for package @standardnotes/mobile
## [3.58.229](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)
### Bug Fixes
* fix extra bottom space when scrolling down note in android ([#2965](https://github.com/standardnotes/app/issues/2965)) ([9c73714](https://github.com/standardnotes/app/commit/9c737141f9e82ed0d50c97eb4b4f4427e30f6dda))
## [3.58.228](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)
**Note:** Version bump only for package @standardnotes/mobile
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@standardnotes/mobile",
"version": "3.58.228",
"version": "3.58.230",
"author": "Standard Notes.",
"private": true,
"license": "AGPL-3.0",
+37 -20
View File
@@ -47,6 +47,9 @@ const MobileWebAppContents = ({ destroyAndReload }: { destroyAndReload: () => vo
const insets = useSafeAreaInsets()
const screenHeight = Dimensions.get('screen').height
const [webViewContainerHeight, setWebViewContainerHeight] = useState(screenHeight)
useEffect(() => {
const removeStateServiceListener = stateService.addEventObserver((event: ReactNativeToWebEvent) => {
webViewRef.current?.postMessage(JSON.stringify({ reactNativeEvent: event, messageType: 'event' }))
@@ -98,27 +101,33 @@ const MobileWebAppContents = ({ destroyAndReload }: { destroyAndReload: () => vo
const keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', (e) => {
// iOS handles this using the `willChangeFrame` event instead
if (Platform.OS === 'android' && insets.bottom > 0) {
fireKeyboardSizeChangeEvent(e)
webViewRef.current?.postMessage(
JSON.stringify({
reactNativeEvent: ReactNativeToWebEvent.KeyboardDidShow,
messageType: 'event',
}),
)
if (Platform.OS === 'android') {
setWebViewContainerHeight(e.endCoordinates.screenY)
if (insets.bottom > 0) {
fireKeyboardSizeChangeEvent(e)
webViewRef.current?.postMessage(
JSON.stringify({
reactNativeEvent: ReactNativeToWebEvent.KeyboardDidShow,
messageType: 'event',
}),
)
}
}
device.reloadStatusBarStyle(false)
})
const keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', () => {
// iOS handles this using the `willChangeFrame` event instead
if (Platform.OS === 'android' && insets.bottom > 0) {
webViewRef.current?.postMessage(
JSON.stringify({
reactNativeEvent: ReactNativeToWebEvent.KeyboardDidHide,
messageType: 'event',
}),
)
if (Platform.OS === 'android') {
setWebViewContainerHeight(screenHeight)
if (insets.bottom > 0) {
webViewRef.current?.postMessage(
JSON.stringify({
reactNativeEvent: ReactNativeToWebEvent.KeyboardDidHide,
messageType: 'event',
}),
)
}
}
device.reloadStatusBarStyle(false)
})
@@ -137,7 +146,7 @@ const MobileWebAppContents = ({ destroyAndReload }: { destroyAndReload: () => vo
keyboardDidHideListener.remove()
keyboardWillChangeFrame.remove()
}
}, [webViewRef, stateService, device, androidBackHandlerService, colorSchemeService, insets.bottom])
}, [webViewRef, stateService, device, androidBackHandlerService, colorSchemeService, insets.bottom, screenHeight])
useEffect(() => {
return notifee.onForegroundEvent(({ type, detail }) => {
@@ -417,10 +426,18 @@ const MobileWebAppContents = ({ destroyAndReload }: { destroyAndReload: () => vo
return (
<View
style={{
flex: 1,
backgroundColor: '#000000',
}}
style={
Platform.OS === 'android'
? {
height: webViewContainerHeight,
backgroundColor: '#000000',
overflow: 'hidden',
}
: {
flex: 1,
backgroundColor: '#000000',
}
}
>
<WebView
ref={webViewRef}
+8
View File
@@ -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.870](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)
**Note:** Version bump only for package @standardnotes/releases
## [1.4.869](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)
**Note:** Version bump only for package @standardnotes/releases
## [1.4.868](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)
**Note:** Version bump only for package @standardnotes/releases
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@standardnotes/releases",
"version": "1.4.868",
"version": "1.4.870",
"license": "AGPL-3.0",
"main": "dist/releases.json",
"types": "dist/index.d.ts",
+13
View File
@@ -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.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)
### Bug Fixes
* Fixes Cancel button not working on Super export modal ([#2968](https://github.com/standardnotes/app/issues/2968)) [skip e2e] ([0a5cd13](https://github.com/standardnotes/app/commit/0a5cd13a96135a3365a7ed33a484edd4eb3b6105))
* Fixes wrong header for session note history when offline ([#2967](https://github.com/standardnotes/app/issues/2967)) ([308b98d](https://github.com/standardnotes/app/commit/308b98db3d3308e5254f17efdeb5cdd385781e22))
## [3.201.6](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)
### Bug Fixes
* Fixes bottom note being hidden behind nav bar on Android ([#2966](https://github.com/standardnotes/app/issues/2966)) ([895353c](https://github.com/standardnotes/app/commit/895353ca7b2c039df26a59224f146c7f04d77f1a))
## [3.201.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)
### Bug Fixes
+30
View File
@@ -1,5 +1,35 @@
{
"versions": [
{
"version": "3.201.7",
"title": "[3.201.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-08)",
"date": null,
"body": "### Bug Fixes\n\n* Fixes Cancel button not working on Super export modal ([#2968](https://github.com/standardnotes/app/issues/2968)) [skip e2e] ([0a5cd13](https://github.com/standardnotes/app/commit/0a5cd13a96135a3365a7ed33a484edd4eb3b6105))\n* Fixes wrong header for session note history when offline ([#2967](https://github.com/standardnotes/app/issues/2967)) ([308b98d](https://github.com/standardnotes/app/commit/308b98db3d3308e5254f17efdeb5cdd385781e22))",
"parsed": {
"_": [
"Fixes Cancel button not working on Super export modal (#2968) skip e2e] ([0a5cd13)",
"Fixes wrong header for session note history when offline (#2967) (308b98d)"
],
"Bug Fixes": [
"Fixes Cancel button not working on Super export modal (#2968) skip e2e] ([0a5cd13)",
"Fixes wrong header for session note history when offline (#2967) (308b98d)"
]
}
},
{
"version": "3.201.6",
"title": "[3.201.6](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2026-01-06)",
"date": null,
"body": "### Bug Fixes\n\n* Fixes bottom note being hidden behind nav bar on Android ([#2966](https://github.com/standardnotes/app/issues/2966)) ([895353c](https://github.com/standardnotes/app/commit/895353ca7b2c039df26a59224f146c7f04d77f1a))",
"parsed": {
"_": [
"Fixes bottom note being hidden behind nav bar on Android (#2966) (895353c)"
],
"Bug Fixes": [
"Fixes bottom note being hidden behind nav bar on Android (#2966) (895353c)"
]
}
},
{
"version": "3.201.5",
"title": "[3.201.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2025-12-18)",
+2 -2
View File
@@ -1,9 +1,9 @@
{
"name": "@standardnotes/web",
"version": "3.201.5",
"version": "3.201.7",
"license": "AGPL-3.0",
"main": "dist/app.js",
"author": "Standard Notes",
"author": "Standard Notes.",
"private": true,
"files": [
"dist"
@@ -9,6 +9,7 @@ import { ElementIds } from '@/Constants/ElementIDs'
import { classNames } from '@standardnotes/utils'
import { SNTag } from '@standardnotes/snjs'
import { ItemListController } from '@/Controllers/ItemList/ItemListController'
import { useMediaQuery, MutuallyExclusiveMediaQueryBreakpoints } from '@/Hooks/useMediaQuery'
type Props = {
application: WebApplication
@@ -25,6 +26,8 @@ const ContentList: FunctionComponent<Props> = ({ application, items, selectedUui
const { sortBy } = itemListController.displayOptions
const selectedTag = navigationController.selected
const isMobileScreen = useMediaQuery(MutuallyExclusiveMediaQueryBreakpoints.sm)
const onScroll: UIEventHandler = useCallback(
(e) => {
const offset = NOTES_LIST_SCROLL_THRESHOLD
@@ -83,7 +86,8 @@ const ContentList: FunctionComponent<Props> = ({ application, items, selectedUui
className={classNames(
'infinite-scroll overflow-y-auto overflow-x-hidden focus:shadow-none focus:outline-none',
'md:max-h-full pointer-coarse:md:overflow-y-auto',
'flex-grow pb-2',
'flex-grow',
isMobileScreen ? !itemListController.isMultipleSelectionMode && 'pb-safe-bottom' : 'pb-2',
)}
id={ElementIds.ContentList}
onScroll={onScroll}
@@ -39,12 +39,12 @@ const ModalContent = observer(() => {
<Modal
title="Export notes"
className="p-4"
close={close}
close={notesController.closeSuperExportModal}
actions={[
{
label: 'Cancel',
type: 'cancel',
onClick: close,
onClick: notesController.closeSuperExportModal,
mobileSlot: 'left',
},
{
@@ -26,9 +26,24 @@ export const formatDateAsMonthYearString = (date: Date) => {
})
}
const getRevisionEntryDate = (entry: RevisionEntry): Date => {
const createdAt = (entry as RevisionMetadata).created_at
if (createdAt) {
return new Date(createdAt)
}
const noteEntry = entry as NoteHistoryEntry
if (noteEntry.payload.updated_at.getTime() > 0) {
return noteEntry.payload.updated_at
}
return noteEntry.payload.created_at
}
export const getGroupIndexForEntry = (entry: RevisionEntry, groups: ListGroup<RevisionEntry>[]) => {
const todayAsDate = new Date()
const entryDate = new Date((entry as RevisionMetadata).created_at ?? (entry as NoteHistoryEntry).payload.updated_at)
const entryDate = getRevisionEntryDate(entry)
const differenceBetweenDatesInDays = calculateDifferenceBetweenDatesInDays(todayAsDate, entryDate)
@@ -80,9 +95,7 @@ export const sortRevisionListIntoGroups = <EntryType extends RevisionEntry>(revi
sortedGroups[groupIndex]?.entries?.push(entry)
} else {
addBeforeLastGroup({
title: formatDateAsMonthYearString(
new Date((entry as RevisionMetadata).created_at ?? (entry as NoteHistoryEntry).payload.updated_at),
),
title: formatDateAsMonthYearString(getRevisionEntryDate(entry)),
entries: [entry],
})
}