Commit | Line | Data |
ddd1dc65 |
1 | package Reaction::UI::ViewPort::Field::Mutable::File; |
2 | |
7893faa8 |
3 | use Reaction::Types::File qw/Upload/; |
ddd1dc65 |
4 | use Reaction::Class; |
ddd1dc65 |
5 | |
81393881 |
6 | use namespace::clean -except => [ qw(meta) ]; |
7 | extends 'Reaction::UI::ViewPort::Field'; |
8 | |
9 | with 'Reaction::UI::ViewPort::Field::Role::Mutable::Simple'; |
10 | |
11 | has '+value' => (isa => Upload); |
12 | |
13 | override apply_our_events => sub { |
14 | my ($self, $ctx, $events) = @_; |
15 | my $value_key = $self->event_id_for('value_string'); |
16 | if (my $upload = $ctx->req->upload($value_key)) { |
17 | local $events->{$value_key} = $upload; |
18 | return super(); |
19 | } else { |
20 | return super(); |
21 | } |
22 | }; |
23 | sub adopt_value_string { |
24 | my($self) = @_; |
25 | $self->value($self->value_string) if $self->value_string; |
26 | }; |
27 | override _value_string_from_value => sub { '' }; |
7893faa8 |
28 | |
81393881 |
29 | __PACKAGE__->meta->make_immutable; |
7893faa8 |
30 | |
ddd1dc65 |
31 | |
32 | 1; |