Open
Conversation
…ations for nft-marketplace example
…support for Rspack, and update dependencies
…ct DOM rendering logic
…with Meteor 3.4 changes
…actor methods to async/await, update build configuration, and clean unused files
…NFT Marketplace to the bottom
… paths and references.
…ed responsiveness
…into a detailed offline-first notes app with new stack integration (jam packages, Mantine UI) and features (PWA, Markdown support, tagging, etc.).
…te, notes-offline, parties, task-manager, tic-tac-toe) with linting and E2E testing configurations
…id element overlap.
…earing on refresh
Adds an ownerId to every note so multiple visitors of the deployed demo do not share a single collection. The id is generated client-side and stored in localStorage; all publications and methods accept and enforce it. An EmptyState hint now surfaces the local-only nature of storage and points users to the existing Export action for backups. Includes server-side ownership tests (cross-owner update, remove, and emptyTrash isolation) and a Playwright test that two browser contexts with different ownerIds do not see each other's notes. Also removes em dash characters from comments and strings in this package for consistency.
Integrates Lingui into the build pipeline in two complementary ways:
@lingui/swc-plugin is registered in .swcrc so the t, Trans, and Plural
macros are transformed by Meteor's built-in SWC loader, and @lingui/loader
compiles the JSON source catalogs inline during bundling so no precompile
step or committed .mjs artifacts are needed.
Catalogs live as minimal flat JSON under imports/locales/{en,es,pt}. The
initial locale comes from localStorage, then navigator.language, falling
back to English. A language switcher in the header menu writes the choice
to localStorage. All user-facing strings in App, NotesList, NoteEditor,
and EmptyState are wrapped in Lingui macros, including a Plural for the
note counter. Dates go through i18n.date so locale affects formatting.
Adds an i18n:extract npm script, a Playwright test that switches to
Spanish and asserts translated strings appear and the locale persists,
and README sections in both the root index and the notes-offline package
covering setup, macro usage, and the extract workflow.
Meteor's DDP heartbeat can take 15s or more to notice a dropped connection, so the icon used to lag noticeably behind reality. Combine navigator.onLine (via window online/offline events) with Meteor.status().connected so the icon reacts immediately when the browser reports offline, while still catching server-only outages through Meteor's heartbeat.
Reworks the language selector into a compact menu button in the sidebar header next to the theme toggle, matching the visual weight of the other header controls instead of the form-input feel of the previous Select at the bottom of the sidebar. The trigger shows the current locale as an uppercase code (EN/ES/PT) with a small chevron, and the dropdown lists the available locales with a check mark on the active one. Updates the Playwright test to click the menu and choose the ES option, and adjusts the README to describe the new location.
Bumps the Meteor Version and Last Updated At lines in the root README for the six internal example apps that were just updated to 3.4.1-rc.1 (task-manager, tic-tac-toe, notes-offline, parties, complex-todos-svelte, nft-marketplace), then regenerates examples.json from the README with the update:examples script. The internal cordova app is still listed under the external CloudByGalaxy/welcome-meteor-cordova entry (unchanged) and the internal /cordova directory is skipped from this round because it is mid- migration from Meteor 2.x and a release bump there would conflate with the ongoing migration work.
Browsers reserve Ctrl+N and Cmd+N to open a new window, so those keystrokes never reached the app outside PWA standalone mode despite calling preventDefault. Switches the keyboard handler, the button tooltip, the empty-state hint, and the README feature list to Alt+N (Option+N on macOS). The handler now matches on e.code === 'KeyN' so Option+N on macOS (which types a tilde instead of n) still fires. Also removes an orphaned fs require in rspack.config.js that started triggering a lint error after the devServer block was dropped, and updates the Playwright shortcut test plus the Spanish and Portuguese catalogs for the renamed tooltip string.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR migrates existing apps in this repo to latest Meteor 3.4.
Task Manager (formerly Tailwind CSS)
juliancwirko:postcssMeteor build plugin with Rspack's built-in CSS/PostCSS pipeline.postcssrc.jswith standardpostcss.config.jsrender()to React 18createRootAPItasks) with full CRUD operations (create, update, delete)usePublication,useMutation) for reactive data fetchingNotes Offline (formerly Chakra UI)
meteor create)workbox-webpack-plugin+ Rspack for PWA service workerParties
insertAsync,findOneAsync,updateAsync) while keeping client-side minimongo calls synchronous for Tracker reactivitythis.userIdbindingaccounts-facebookandaccounts-twitter(TODO: research its inclusion)Tic-Tac-Toe
"modern": trueflag to enable ES2020+ module output required by Rspackrender()to React 19createRootAPIComplex Todos (Svelte)
mdg:validated-method+simpl-schemawithjam:method+ Zod for method definitions and schema validationmount()/unmount()API with HMR supportinsertAsync,findOneAsync,updateAsync)export let,$:,on:click) to Svelte 5 runes ($props,$state,$derived,onclick)NFT Marketplace
render()to React 18+createRootAPISimple Blog (Contribution)
meteor create(revisit already approach)[More coming]