Skip to content

Conversation

@BartoszKlonowski
Copy link
Member

This pull request implements the main application's page basic behavior:
It allows to navigate across the Notes panel and go deeper into the Note details page.


There are three main functionalities included in this implementation:

  • NoteWidgetClickHandler - this is the native module responsible for navigating between the pages without the NavigationView but via the global Frame of the application.
    This allows to remove the navigation top pane when navigating deeper into the Note details.
    The "deeper" is done by setting the navigation animation to the Drill mode, so there's a feel of going deeper into the application.
  • NoteWidgetDetailsPanel - this is the main screen which is about the provide user the ability to view and edit the clicked note. When navigating to each Note, it's ID is passed to the screen, so all data of this certain Note can be pulled from database and displayed in this page.
  • NotesPage - this page has been improved by adding the view of many single notes as separate widgets in the dynamic FlatList - it is changing it's column's number on the window dimensions change.

So, regarding the basic layout implementation, this pull request mostly relates to the selected part of the application system:
Diagram

For more details about the implementation please check the commit messages.


The result of this pull request is as presented on the animation below.
Note that some colors are damaged by the GIF compression, there's also the lag when changing the window's dimensions.
RNN-Example2

The application's main panel contains all the notes added by the user.
They are displayed in the grid, with number of columns adapted to the
width of the window.
Note, that the Window size needs to be considered instead of Screen's.
That is due to having the Page in RNW rendered as a root with certain
and fixed dimensions.

Currently only the testing data are given to the FlatList, so there's a
possibility to test it by displaying any content.
In further development that data should be taken from the database.
This commit introduces the initial widget containing single note
presented on the main panel.
This widget has the reponsibility to:
* contain the summary of the note: ID, Title and shortened post message
* act as the button to enter the full post screen
This native module is responsible for handling the navigation between
screens which are not connected through the NavigationView and it's
Frame.
This situation happens, when there's a need to navigate to separate
screen, but at the same time get rid of navigation panel.

This native module is called  NoteWidgetClickHandler  because it is
designed explicitly for the  NotesPage <-> NoteWidgetDetailsPage
navigation both-ways.
The native module should also provide the system with the ability to go
back.
This is now done by the GoToNotesScreen function, which navigates to the
MainPage.

NOTE: MainPage needs to be selected, as only this page contains the
NavigationFrame and is able to display the navigation top pane.
This is why there's a starting point implemented when MainPage is
navigated to.
@BartoszKlonowski BartoszKlonowski added enhancement New feature or request JavaScript Topic relates to the JS or React Native code labels Mar 25, 2021
@BartoszKlonowski BartoszKlonowski merged commit cbf7b1d into main Mar 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request JavaScript Topic relates to the JS or React Native code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants