Jump to conversation
Unresolved conversations (17)
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
Using `registry.js` here was causing **two copies** of `registry` to be included — the copy from files that `require('registry')` and the copy from files that `require('registry.js')`. As a result, certain global variables/properties in `registry` were not initialized in one copy, but were in the other. To work around this issue, this pull request changes all `registry.js` imports to `registry` imports. Perhaps using [`metro` instead of `webpack`](https://github.com/necolas/react-native-web/issues/1257) would be a different way to address this issue?
...components/shared/dropbox-login-shared.js
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
I'm not sure that this is true...
Outdated
packages/app-mobile/web/public/index.css
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
**Related regression testing**: - On Android 13, I have verified that: 1. The "select date time" dialog can be opened from the note actions menu for a to-do (from "set alarm"). 2. Clicking "set date" shows a date/time selection dialog. 3. Clicking "save alarm" asks for alarm permissions (I hadn't previously granted them to Joplin). 4. Clicking "clear alarm" clears the alarm.
Outdated
...obile/components/SelectDateTimeDialog.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
Works around an issue where log lines weren't showing on web.
...p-mobile/components/screens/LogScreen.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
`flex` styling is handled slightly differently in `react-native-web` when compared to `react-native`. In particular, [`flex-basis`](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis) (the default `flex` size) seems to default to `0` in some cases.
...creens/ConfigScreen/configScreenStyles.ts
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
`showDirectoryPicker` is currently unsupported in most browsers that aren't Google Chrome. Currently, the file input is disabled in this case (see the `if (!supported` change below).
...s/ConfigScreen/FileSystemPathSelector.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
To prevent the markdown toolbar from being invisible on web, different logic for hiding/showing the markdown toolbar's overflow menu was needed.
...ts/NoteEditor/MarkdownToolbar/Toolbar.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
Currently, `Alert.alert` doesn't work with `react-native-web`. This file provides an API compatible with `Alert` that does work on web.
Outdated
...s/app-mobile/components/DialogManager.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
It might be better to use the inline edit icon on all platforms (at present, it's a hardcoded placeholder and is slightly different from the Ionicon `pencil` icon). ![New icon: Slightly different from the ionicon icon](https://github.com/user-attachments/assets/4911fd16-c292-45a3-a23f-891563d07122)
...ents/NoteBodyViewer/hooks/useEditPopup.ts
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
This is a hack to allow KaTeX and other CSS files to load fonts and other similar resources with `url(...)` syntax. Like note resources, plugin assets are stored in [a virtual filesystem](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system). As such, `src: url(./some-resource.ttf)` won't work. This function replaces `url(./some-resource.ttf)` syntax with `url(...some working URL here...)`, allowing these resources to load.
...Viewer/bundledJs/utils/addPluginAssets.ts
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
On web, resources are stored in a **virtual** file system ([OPFS](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system)). As such, to show them with `<img>`/`<video>` and tags, we need to create URLs for them.
...ents/NoteBodyViewer/bundledJs/Renderer.ts
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
Currently, this is used by the markdown toolbar.
...ages/app-mobile/components/IconButton.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
Related documentation: - https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/allow - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox
.../components/ExtendedWebView/index.web.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
`aria-hidden={true}` is the web version of the "hide from screen readers and other accessibility tools". Currently, we use `accessibilityElementsHidden={true}` for this on iOS and `importantForAccessibility='no-hide-descendants'` on Android. Also see the new `components/accessibility/AccessibleView.tsx` file.
packages/app-mobile/components/Dropdown.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 26, 2024
`DialogManager.tsx` was added due to the lack of support for `Alert.alert` in `react-native-web`. On web, it manages showing custom dialogs based on `react-native-paper`, with an `Alert.alert` compatible API. On other platforms, it continues to show dialogs with `Alert.alert`. It also sets `shim.showMessageBox`, allowing plugins and other related code to use the custom dialogs. Screenshot: ![screenshot: rn-paper-based dialog](https://github.com/user-attachments/assets/eddc966c-6791-4bef-81f7-dd6965976376)
Outdated
...s/app-mobile/components/DialogManager.tsx
@personalizedrefrigerator personalizedrefrigerator Jul 2, 2024
Currently, this is disabled by default because no user-visible reason is shown for why location permission is requested. The "Allow location access" prompt is shown when first creating a new note (after enabling location tracking), but there isn't any context for why Joplin wants to track the user's location. Currently, however, I don't think the existing mobile app explains why location permissions are being requested. As such, for consistency, it could make sense to remove this different default: ```suggestion ```
packages/app-mobile/root.tsx
@personalizedrefrigerator personalizedrefrigerator Jun 29, 2024
We might be able to use the [Web Notification API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API) for this. However, the app might need to be open for this to work (alternatively, we could use the [background sync API](https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API), but this might not be accurate enough for alarm scheduling).
...es/app-mobile/components/screens/Note.tsx
Resolved conversations (2)
@personalizedrefrigerator personalizedrefrigerator Jul 4, 2024
Maybe refactor?
...es/app-mobile/components/screens/Note.tsx
@personalizedrefrigerator personalizedrefrigerator Jun 22, 2024
This change fixes a mobile app runtime error — it likely needs to be moved to a separate pull request.
Outdated
packages/utils/time.ts