Code Duplication    Length = 42-43 lines in 2 locations

src/delivery/web/fields/ColorField.php 1 location

@@ 10-51 (lines=42) @@
7
use rtens\domin\parameters\Color;
8
use watoki\reflect\type\ClassType;
9
10
class ColorField implements WebField {
11
12
    /**
13
     * @param Parameter $parameter
14
     * @return bool
15
     */
16
    public function handles(Parameter $parameter) {
17
        return $parameter->getType() == new ClassType(Color::class);
18
    }
19
20
    /**
21
     * @param Parameter $parameter
22
     * @param string $serialized
23
     * @return mixed
24
     */
25
    public function inflate(Parameter $parameter, $serialized) {
26
        return $serialized ? Color::fromHex($serialized) : null;
27
    }
28
29
    /**
30
     * @param Parameter $parameter
31
     * @param Color $value
32
     * @return string
33
     */
34
    public function render(Parameter $parameter, $value) {
35
        return (string)new Element('input', array_merge([
36
            'type' => 'color',
37
            'name' => $parameter->getName(),
38
            'value' => $value ? $value->asHex() : ''
39
        ], $parameter->isRequired() ? [
40
            'required' => 'required'
41
        ] : []));
42
    }
43
44
    /**
45
     * @param Parameter $parameter
46
     * @return array|Element[]
47
     */
48
    public function headElements(Parameter $parameter) {
49
        return [];
50
    }
51
}

src/delivery/web/fields/TextField.php 1 location

@@ 9-51 (lines=43) @@
6
use rtens\domin\parameters\Text;
7
use watoki\reflect\type\ClassType;
8
9
class TextField implements WebField {
10
11
    /**
12
     * @param Parameter $parameter
13
     * @return bool
14
     */
15
    public function handles(Parameter $parameter) {
16
        return $parameter->getType() == new ClassType(Text::class);
17
    }
18
19
    /**
20
     * @param Parameter $parameter
21
     * @param string $serialized
22
     * @return mixed
23
     */
24
    public function inflate(Parameter $parameter, $serialized) {
25
        return new Text($serialized);
26
    }
27
28
    /**
29
     * @param Parameter $parameter
30
     * @param Text $value
31
     * @return string
32
     */
33
    public function render(Parameter $parameter, $value) {
34
        return (string)new Element('textarea', array_merge([
35
            'name' => $parameter->getName(),
36
            'class' => 'form-control',
37
        ], $parameter->isRequired() ? [
38
            'required' => 'required'
39
        ] : []), [
40
            $value ? $value->getContent() : null
41
        ]);
42
    }
43
44
    /**
45
     * @param Parameter $parameter
46
     * @return array|\rtens\domin\delivery\web\Element[]
47
     */
48
    public function headElements(Parameter $parameter) {
49
        return [];
50
    }
51
}