Pains and thoughts about refactoring the Tree Menu using React

From: Joao Pedro De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
To: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Pains and thoughts about refactoring the Tree Menu using React
Date: 2017-04-21 18:47:46
Message-ID: CAE+jja=T2q9-6LPsnZuUs4q3YO8jvYB3eUOKhU=VUSsaW6RoPg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Hackers,

After a conversation with Dave we believe that we need to provide more
context on our pains and what we propose as a first step for implementing
the Tree Menu using React.

The pain:

Here is a quick description of what we think we understand and where we got
stuck while doing our refactor.

If you look at the above image, both the NodeJS and CollectionJS classes
are templates. Our goal was to extract those from being templates so that
we could test them. We started with the generate_url function. The issue we
ran into was that the generate_url function is inherited by CollectionJS
from NodeJS but then over writes some of the functionality that it
inherits. In order to have one function that our react component would
delegate to, we have to consolidate these two class methods. This turned
out to be a non-trivial refactor due to the lack of tests/documentation.

Our proposal:

This diagram represents what we believe can be our first approach to
updating the tree. We can create a very basic tree that only does tree
stuff (Open Node, Close Nodes) and then delegates to other adapters to
execute all the business logic functionality (Generate URLs to get the
node, Right Click menu, …)

Asks:

-

Are there any more operation that currently are being triggered by the
tree? If so we need to add them to the Adapter List.
-

Because we lack the context and knowledge of the current tree
implementation, we need your help to extract these methods from the places
they are currently in. We believe that a good place to start would be
writing tests for and implementing the generation of URLs used to fetch the
child nodes.

Attached you can find an example of the JavaScript tests that we have been
writing that can be applied to this extracted method.

Thanks

Rob, Oliver & Joao

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Joao Pedro De Almeida Pereira 2017-04-21 18:52:03 Re: Pains and thoughts about refactoring the Tree Menu using React
Previous Message Shirley Wang 2017-04-21 18:36:44 Re: [Design update] Style guide for pgAdmin4