react-paper / react-paper-bindings

Paper.js bindings for React
http://react-paper.github.io/react-paper-bindings/
194 stars 36 forks source link

Group and Path should have 'position' prop #15

Open kota65535 opened 6 years ago

kota65535 commented 6 years ago

I found some issues for moving position of Group and Path.

Problem of center and point prop on Group and Path component

both prop perfectly work for shaped paths, like Circle, Rectangle ...etc. On the other hand, Path and Group does not reflect its initial position by these props. For example, this below does not set its center position to [100, 100].

        <Path
          segments={[[20, 20], [80, 80], [140, 20]]}
          center={[100,100]}
          fillColor={'black'}
        />

This also does not work.

        <Path
          segments={[[20, 20], [80, 80], [140, 20]]}
          point={[100,100]}
          fillColor={'black'}
        />

introducing position prop

position prop works for not only shaped paths but also all Item based objects, Path, Group. Layers ...etc. But currently changing these props does not move its actual position. It would be better if this prop is available, like below.

        <Path
          segments={[[20, 20], [80, 80], [140, 20]]}
          position={new Point(100,100)}
          fillColor={'black'}
        />
HriBB commented 6 years ago

Hey @kota65535. It's been some time, since I last worked on this library, but I think that vanilla PaperJS does not support changing center/point props on Path or Group. As you have already figured out, it works for Circle for example.

I think something like position prop would be perfect for this use case. I was trying to keep the custom props down to the minimum, but for some cases it just makes sense. You can make a PR if you wish.

kota65535 commented 6 years ago

Hi @HriBB, I already have some working codes and test cases that go along with #14. I will brush up them and make PR this week.